gpt4 book ai didi

typescript - 这是什么意思 { 0 : T } in this type declaration?

转载 作者:行者123 更新时间:2023-12-03 09:49:28 24 4
gpt4 key购买 nike

我在我的代码库中发现了这个类型声明,顾名思义,它是关于非空数组的:

type NonEmptyArray<T> = T[] & { 0: T }

它按预期工作:

const okay: NonEmptyArray<number> = [1, 2];
const alsoOkay: NonEmptyArray<number> = [1];
const err: NonEmptyArray<number> = []; // error!

问题:

  • 1 我无法理解 0 是什么意思本部分代表{ 0: T } .能解释一下吗?

  • 2 替代声明有什么不同?

type NonEmptyArray<T> = [T, ...T[]];

最佳答案

{ 0: T }0 只是一个匹配数组第一个元素索引的键。因为在 javascript 中数组是对象的子类型,所以它工作得很好。我相信替代声明提供了相同的结果,但更加简单易懂。也许只是代码适用于旧版本的 typescript ,在元组中传播类型相对较新。

关于typescript - 这是什么意思 { 0 : T } in this type declaration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60167086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com