我错过了 TypeScript 中的一种基本类型:元组。
因此,UnionA
和 UnionB
的语义是不同的:
let x: UnionA = 0 // works
let x: UnionA = "" // works
let x: UnionB = 0 // doesn't work
let x: UnionB = "" // doesn't work
let x: UnionB = [0] // works
let x: UnionB = [""] // works
基本上,UnionB
是一个长度为1的元组,其第一个元素是number | string
的联合体。
回顾一下,链接的问题最可能
[]
来获取纯联合类型,或者,
而不是|
来获得具有多个字段的有意义的元组。