类型A <t> = T []和类型B <t> = [T]有什么区别?

时间:2019-03-18 07:46:29

标签: arrays typescript generics union

请参见下面的最低TypeScript通用映射类型代码:

type A<T> = T[]
type B<T> = [T]

type ResultA = A<1 | 2 | 3>
// => type ResultA = (1 | 2 | 3)[]

type ResultB = B<1 | 2 | 3>
// => type ResultB = [1 | 2 | 3]

我有两种通用的映射类型,一种返回T[],另一种返回[T],如果我向其中传递一个并集,它将解析差异格式。

(1 | 2 | 3)[][1 | 2 | 3]

这两者有什么区别?我应该使用哪一个?

1 个答案:

答案 0 :(得分:2)

第二个[T]仅接受一项,另一项不受限制。

例如:[string]仅接受['a'],而不接受['a', 'b'],但string[]接受