ts 类型循环大法

711 阅读1分钟

interface 这种泛型类型的循环对象的key用keyof

比如说:

interface Todo {
  title: string
  description: string
  completed: boolean
}

keyof Todo // 'title' | 'description' | 'completed'


像这种'title' | 'description' | 'completed'参数传参经常出现

那么要循环这些带或的字段,用

`c` 比如说这个是K

那么循环这个K就用`k in K`

对,没错用 in

type 这种类型的循环对象的key也是用keyof

同 interface


数组类型

const tuple = ['tesla', 'model 3', 'model X', 'model Y'] as const (这种加了 as const就是只读的数组类型)

这种怎么循环呢?用T[number]得出"tesla" | "model 3" | "model X" | "model Y"这种联合类型,

再根据第二种循环 k in T[number] 就得到这个联合类型的每一个值


给出一个数组 [3, 2, 1]

得到这个数组的长度 就写 T['length'] , 这个一定要加''

得到这个数组的第一个值 就写 T[0]

在ts中,判断数组的长度等不等于0,不能写成 T['length'] == 0 ,只能用extends来表示: T['length'] extends 0