请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如何使用数组的值作为 type 定义

图片描述
老师,为什么图片中我不能用 … 的方式?
另外,
我如何使用数组的值作为 type 定义?

正在回答 回答被采纳积分+3

1回答

张轩 2021-03-16 15:28:43

同学你好 

第一个问题,我在本地测试并没有问题,返回的 string[] 类型,不知道你爆出的错误是什么?

第二个问题 你离正确答案很近了,2.1以后, typescript支持 [ ] 这种取值方法直接取类型,所以你这里可以这样写

type Test1 = typeof array[0]
// Test1 现在是 string 类型
文档在这里:https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html


0 回复 有任何疑惑可以回复我~
  • 提问者 此间少年_ #1
    老师,我不是想拿到 string 类型,我举个例子:
    var arr = ['成功','失败', '等待']
    希望可以通过数组拿到
    type arrType = '成功' | '失败' | '等待'
    
    图片中,我用第二种方式的时候可以正确拿到我想要的结果,但是用第一种方式,拿到的是 string[],并不是我想要的  type arrType = '成功' | '失败' | '等待'
    回复 有任何疑惑可以回复我~ 2021-03-16 20:56:59
  • 张轩 回复 提问者 此间少年_ #2
    同学你好 当使用 speard 进行传值调用的时候,arr 已经是一个 string[] 类型了(你可以把鼠标放上去就知道了),只有它是一个确定的类型的时候,这时候返回是没问题的。
    // 比如我显式的给他指定一个类型
    const arr: ['1', '2'] = ['1', '2']
    const b = tuple(...arr)
    // 这个时候b 的返回类型是正确的
    
    所以使用 speard 的方法,在我现在看来没想到什么方法可以实现。
    回复 有任何疑惑可以回复我~ 2021-03-17 16:09:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信