定义一个n项重复数组(元组)
type count<n extends number, v extends any = 0, counter extends any[] = []> =
counter['length'] extends n ? counter : count<n, v, [...counter, v]>
let a0:count<5>
// 等同于
// let a0: [0, 0, 0, 0, 0]
// 这里的a0相当于就是一个长度为5,类型为0的元祖
let a1:count<5, any>
// 等同于
// let a1: [any, any, any, any, any]
let a2:count<5, number[], [[1,2,3], [4,5,6]]>
// let a2: [[1, 2, 3], [4, 5, 6], number[], number[], number[]]
加法
type add<m extends number, n extends number> = [...count<m>, ...count<n>]["length"]
let b:add<20, 9>
// b: 29
我很可爱,请给我钱.
- 本文链接:https://meglody.github.io/diary/TypeScript%E5%85%83%E7%BC%96%E7%A8%8B%EF%BC%88%E4%B8%80%EF%BC%89/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。