shiyicyh
shiyicyh
```TypeScript type JoinStrArray = Arr extends [infer El,...infer Rest] ? //一层判断,若true则执行第二层判断。否则执行结果1 Rest extends string[] ? //二层判断,若true则执行第三层判断。否则执行结果2 El extends string ? //三层判断,若true则执行第四层判断。否则执行结果3 Result extends "" ? //四层判断,若true则执行结果5。否则执行结果4 JoinStrArray : //结果5 JoinStrArray...
```TypeScript type Fn = (a: number, b: string) => number //方法一 type AppendArgumentany, A> = ( X:A, ...args:Parameters //Parameters获得函数参数类型组合,解构赋值 //ReturnType获得函数返回值类型 )=> ReturnType //方法二 //通过推断关键字标记点 type AppendArgument2 = F extends (...args:infer...
```TypeScript // 7.1 type EmptyObject = { [k in any]:never } // 测试用例 const shouldPass: EmptyObject = {}; // 可以正常赋值 // const shouldFail: EmptyObject = { // 编译错误 // prop:...
```TypeScript //,T[]定义内容需要是数组,{0:T}定义第一项数据类型为T以此保证不为空 type NonEmptyArray = T[] & {0:T}; ``` ```TypeScript //元祖定义,定义第一项必须存在且类型为T;...T[]为元祖的剩余元素定义,定义可有任意个T类型元素 type NonEmptyArray = [T,...T[]] //const a: NonEmptyArray = []// 出现编译错误 const b: NonEmptyArray = ['Hello TS'] // 非空数据,正常使用 ```