在下列TypeScript函数宣告中,alignment
参数型别是一组联合常值。
function printText(s: string, alignment: "left" | "right" | "center") {
// ...
}
根据文字文档,string
类型的变量不能赋值给alignment
,因为严格地说它不是"left" | "right" | "center"
类型。
文档要求使用如下类型Assert:
printText("Test", printerConfig.textAlignment as "left");
这样也行:
const printerConfig = { textAlignment: "left" } as const;
printText("Test", printerConfig.textAlignment);
现在想象一下:
printText
函数在库中,我无法更改它。
1.我的代码被传递了一个printerConfig
对象,或者它从JSON配置文件中读取它。
1.其textAlignment
属性的类型为string
。
如何调用printText
函数?
1条答案
按热度按时间rxztt3cl1#
我认为如果
alignment
不是一个合理的值,您就不会想调用printText
-如果代码的调用者传递了一个错误的config对象,或者JSON的格式不正确呢?您可能想在调用printText
之前抛出一个错误。在传递
textAlignment
之前缩小它的类型。如果它不是正确的类型,则抛出错误。