Add tests
This commit is contained in:
parent
be4fb30e61
commit
332861b4fc
1 changed files with 11 additions and 0 deletions
|
@ -33,6 +33,7 @@ type T15 = ReturnType<any>; // any
|
|||
type T16 = ReturnType<never>; // never
|
||||
type T17 = ReturnType<string>; // Error
|
||||
type T18 = ReturnType<Function>; // Error
|
||||
type T19<T extends any[]> = ReturnType<(x: string, ...args: T) => T[]>; // T[]
|
||||
|
||||
type U10 = InstanceType<typeof C>; // C
|
||||
type U11 = InstanceType<any>; // any
|
||||
|
@ -168,3 +169,13 @@ type EnsureIsString<T> = T extends MustBeString<infer U> ? U : never;
|
|||
|
||||
type Test1 = EnsureIsString<"hello">; // "hello"
|
||||
type Test2 = EnsureIsString<42>; // never
|
||||
|
||||
// Repros from #26856
|
||||
|
||||
function invoker <K extends string | number | symbol, A extends any[]> (key: K, ...args: A) {
|
||||
return <T extends Record<K, (...args: A) => any>> (obj: T): ReturnType<T[K]> => obj[key](...args)
|
||||
}
|
||||
|
||||
const result = invoker('test', true)({ test: (a: boolean) => 123 })
|
||||
|
||||
type Foo2<A extends any[]> = ReturnType<(...args: A) => string>;
|
||||
|
|
Loading…
Reference in a new issue