-
Notifications
You must be signed in to change notification settings - Fork 392
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
「重学TS 2.0 」TS 练习题第十六题 #35
Comments
type Push<T extends any[], V> = T extends [...infer U] ? [...U, V] : never;
// 测试用例
type Arr0 = Push<[], 1> // [1]
type Arr1 = Push<[1, 2, 3], 4> // [1, 2, 3, 4 |
你的答案串题了 @sunboyZgz |
type Push<T extends any[], V> = [...T, V];
// 测试用例
type Arr0 = Push<[], 1> // [1]
type Arr1 = Push<[1, 2, 3], 4> // [1, 2, 3, 4] |
|
type Push<T extends any[], V> = [...T, V] // 你的实现代码
// 测试用例
type Arr0 = Push<[], 1> // [1]
type Arr1 = Push<[1, 2, 3], 4> // [1, 2, 3, 4] |
type Push<T extends any[], V> = [...T, V] |
type Push<T extends any[], V> = [...T, V]
// 测试用例
type Arr0 = Push<[], 1> // [1]
type Arr1 = Push<[1, 2, 3], 4> // [1, 2, 3, 4] |
|
// 实现一个 Push 工具类型,用于把指定类型 E 作为第最后一个元素添加到 T 数组类型中。具体的使用示例如下所示:
type Push<T extends any[], V> = [...T, V];
// 测试用例
type Arr0 = Push<[], 1> // [1]
type Arr1 = Push<[1, 2, 3], 4> // [1, 2, 3, 4] 着眼点在数组的形状上,直接构造。省去乱七八糟的东西 |
type Push<T extends any[], V> = [...T, V]
// 测试用例
type Arr0 = Push<[], 1> // [1]
type Arr1 = Push<[1, 2, 3], 4> // [1, 2, 3, 4] |
export default {} // 实现一个 Push 工具类型,用于把指定类型 E 作为第最后一个元素添加到 T 数组类型中。具体的使用示例如下所示: // 测试用例 |
type Push<T extends any[], V> = [...T, V]; // 测试用例 |
type Push<T extends any[], V> = [...T, V] |
type Push<T extends any[], V> = T extends [...infer R] ? [...R, V] : T
// 测试用例
type Arr0 = Push<[], 1> // [1]
type Arr1 = Push<[1, 2, 3], 4> // [1, 2, 3, 4] |
type Push<T extends any[], V> =
T extends [...infer Arr]
? [...Arr, V]
: []
// 测试用例
type Arr0 = Push<[], 1> // [1]
type Arr1 = Push<[1, 2, 3], 4> // [1, 2, 3, 4] |
// 解法1: 直接扩展运算符
type Push<T extends any[], V> = [...T, V]
// 解法2: 使用infer指代源数组来扩展
type Push1<T extends any[], V> = T extends [...infer K] ? [...K, V] : [] |
|
type Push<T extends any[], V> = [...T, V]; // 你的实现代码
// 测试用例
type Arr0 = Push<[], 1>; // [1]
type Arr1 = Push<[1, 2, 3], 4>; // [1, 2, 3, 4] |
type Push<T extends any[], V> = [...T, V];
// 测试用例
type TestArr0 = Push<[], 1>; // [1]
type TestArr1 = Push<[1, 2, 3], 4>; // [1, 2, 3, 4] |
实现一个
Push
工具类型,用于把指定类型E
作为第最后一个元素添加到T
数组类型中。具体的使用示例如下所示:The text was updated successfully, but these errors were encountered: