为啥ts报错Type 'number' is not assignable to type '3' ?

image.png
小白初学ts 有些迷糊
1.这个类型这么写为什么会报错
2.type3 是个什么类型 为什么能传3。泛型不是传个类型吗。传number/string这种类型能理解,为什么还能传个具体值?
3.就按这种思路能实现这个类型吗

阅读 1.6k
1 个回答
  1. as const 一下即可

    const T: toFixLengthTuple<string, 3> = ['a', 'b', 'c'] as const
  2. 3 这个也是类型,TS 里面字面量可以作为类型的。

    type version = 1 | 2

    还有字符串字面量类型也很常用:

    type State = 'succeeded' | 'failed' | 'pending' | 'timeout'
    let state: State = 'pending' // 这里就有代码补全了
    // ...
    switch (state) {
       case: 'succeeded': // ... 这也有补全,而且可以类型收窄
    }
logo
Microsoft
子站问答
访问
宣传栏