【发布时间】:2019-10-27 03:56:41
【问题描述】:
我正在尝试使用元素数组作为联合类型,这在 TS 3.4 中使用 const 断言变得很容易,所以我可以这样做:
const CAPITAL_LETTERS = ['A', 'B', 'C', ..., 'Z'] as const;
type CapitalLetter = typeof CAPITAL_LETTERS[string];
现在我想测试一个字符串是否为大写字母,但以下失败并显示“不可分配给类型的参数”:
let str: string;
...
CAPITAL_LETTERS.includes(str);
有没有比将CAPITAL_LETTERS 转换为unknown 然后再转换为Array<string> 更好的方法来解决这个问题?
【问题讨论】:
-
我想你想要
type CapitalLetter = typeof CAPITAL_LETTERS[number]...也就是说,索引number,而不是string。
标签: typescript3.0