Skip to content

Commit b409592

Browse files
committed
feat: 🎸 add return type
1 parent e4aebb2 commit b409592

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

tree/Typescript/1.type.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,19 @@ type Overwrite<T extends object, U extends object, I = Diff<T, U> & Intersection
5454

5555
type OverwriteEg = Overwrite<{ key1: number, other: boolean }, { key1: string, key3: number }>
5656

57+
/**
58+
* @desc 推断一个函数的返回值
59+
* @knowledge infer
60+
*/
61+
type MyReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any
62+
type MyReturnTypeEg = MyReturnType<(a: number) => number>
63+
64+
/**
65+
* @desc 给一个字符串每个字符后面加上指定字符
66+
* @knowledge 递归
67+
*/
68+
type LoopStr<T extends string, U extends string> = T extends `${infer P}${infer R}`
69+
? `${P}${U}${LoopStr<R, U>}`
70+
: '';
71+
type LoopStrEg = LoopStr<'string', '-'>
72+

0 commit comments

Comments
 (0)