我在我的代码库中发现了这个类型声明,顾名思义是关于非空数组:
type NonEmptyArray<T> = T[] & { 0: T }
它按预期工作:
const okay: NonEmptyArray<number> = [1, 2];
const alsoOkay: NonEmptyArray<number> = [1];
const err: NonEmptyArray<number> = []; // error!
问题:
0
在这部分 { 0: T }
中代表什么。你能解释一下吗? type NonEmptyArray<T> = [T, ...T[]];
最佳答案
在 { 0: T }
中 0
只是一个匹配数组第一个元素索引的键。由于在 javascript 数组中是对象的子类型,因此它工作得很好。我相信替代声明提供了相同的结果,但更简单,更容易理解。
也许这只是与旧版本 typescript 一起使用的代码,在元组中传播类型是相对较新的。
关于typescript - { 0 : T } in this type declaration? 是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60167086/