我找到了一些代码,这些代码使用以下变量定义了一个类。
export class Foo {
id: string = "A regular string"
bar: '>' | '<' | '=' | '<=' | '>=' = '>';
}
让我感到困惑的是变量“ bar”。而不是具有类型定义,而是在其中似乎有一个由管道分隔的字符串列表,并在最后分配了这些字符串之一。
直觉告诉我,这表明变量栏仅限于列出的值,并且最终被赋予值'>'。
这个有名字吗?我在变量声明文档中的任何地方都找不到它。
答案 0 :(得分:2)
您正在查看的是一个union type
:https://www.typescriptlang.org/docs/handbook/advanced-types.html
bar
只能等于:
(>
或<
或=
或<=
或{{ 1}})
最后一个>=
(在并集类型之后)指定=
的默认值,正如您所指出的,它是bar
。
希望这有帮助,请查看我发布的链接以获取有关联合类型的更多信息。