我知道我可以定义字符串联合类型来限制变量只能是可能的字符串值之一:
type MyType = 'first' | 'second'
let myVar:MyType = 'first'
我需要构建一个类似于常量字符串的类型,例如:
const MY_CONSTANT = 'MY_CONSTANT'
const SOMETHING_ELSE = 'SOMETHING_ELSE'
type MyType = MY_CONSTANT | SOMETHING_ELSE
但出于某些原因它不起作用,它显示错误信息:MY_CONSTANT指向一个值,但在此处被用作类型
。
为什么TypeScript允许第一个示例,但不允许第二个示例?我使用的是TypeScript 3.4.5。
type MyType = typeof MY_CONSTANT | typeof SOMETHING_ELSE
。类型(仅存在于设计时间)和值(在运行时存在)之间有很大区别。 - jcalz