首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`any[never]`是`any`类型对吗?

`any[never]`是`any`类型对吗?
EN

Stack Overflow用户
提问于 2019-07-09 05:38:20
回答 1查看 58关注 0票数 2

unknown到元组,再到object,number...如果你用[never]访问它们,它等同于never。那么为什么any[never]会有不同的行为呢?以下是一致的,为什么?

代码语言:javascript
复制
type test0 = number[never] // never
type test1 = object[never] // never
type test2 = string[never] // string?
type test3 = any[never]    // any?

type test4 = number[][never] // number
type test5 = object[][never] // object
type test6 = string[][never] // string
type test7 = any[][never]    // any
type test8 = {}[][never]     // {}
EN

回答 1

Stack Overflow用户

发布于 2019-07-09 05:45:29

我认为这是一致的。never是所有类型的子类型。因此,它可以分配给任何其他类型。因此,如果我们可以在没有编译器错误的情况下使用never进行索引:

代码语言:javascript
复制
declare let o: never;
declare let arr: any[];
arr[o] // not error, any

剩下的只是什么可以被索引的问题。numberobject没有索引签名,因此结果是neverstring是可索引的,并且结果是一个string,所以string[never]stringany是通用可索引的,结果是any,所以any[never]any

对于使用never索引的数组,就像我们上面看到的那样,这是可能的,它将给我们提供项类型,因此这些结果是一致的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56942865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档