以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - TypeScript 类型谜题
34. implement Repeat<T, C>
解答:
可以通过递归实现 Repeat 类型。
type Repeat<T, C extends number> = C extends 0 ? [] : [T, ...Repeat<T, C-1>];
首先判断 C 是否为 0,如果是,直接返回空数组,否则返回一个由 T 和重复的 T 组成的数组。
测试代码:
type A = Repeat<number, 3> // [number, number, number]type B = Repeat<string, 2> // [string, string]type C = Repeat<1, 1> // [1, 1]type D = Repeat<0, 0> // []// 验证类型const test: [A, B, C, D] = [[1, 2, 3], ['a', 'b'], [1, 1], []];
如果 C 是一个负数,则编译不通过。