【发布时间】:2022-11-25 00:11:05
【问题描述】:
在以下 TypeScript 函数声明中,alignment 参数类型是一组联合文字。
function printText(s: string, alignment: "left" | "right" | "center") {
// ...
}
根据docs on literals,string类型的变量不能分配给alignment,因为严格来说它不是"left" | "right" | "center"类型。
文档说要使用这样的类型断言:
printText("Test", printerConfig.textAlignment as "left");
这也行得通:
const printerConfig = { textAlignment: "left" } as const;
printText("Test", printerConfig.textAlignment);
现在想象一下:
-
printText函数在库中,我无法更改它。 - 我的代码已传递一个
printerConfig对象,或者它会从 JSON 配置文件中读取它。 - 其
textAlignment属性的类型为string。如何调用
printText函数?
【问题讨论】:
-
提示:你会如何在 JavaScript 中做到这一点?解决方案在 TypeScript 中基本相同。
标签: typescript