1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
=== tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_contextualTyping2.ts ===
let obj: { f(s: string): void } & Record<string, unknown> = {
>obj : { f(s: string): void; } & Record<string, unknown>
>f : (s: string) => void
>s : string
>{ f(s) { }, // "incorrect" implicit any on 's' g(s) { }} satisfies { g(s: string): void } & Record<string, unknown> : { f(s: any): void; g(s: string): void; }
>{ f(s) { }, // "incorrect" implicit any on 's' g(s) { }} : { f(s: any): void; g(s: string): void; }
f(s) { }, // "incorrect" implicit any on 's'
>f : (s: any) => void
>s : any
g(s) { }
>g : (s: string) => void
>s : string
} satisfies { g(s: string): void } & Record<string, unknown>;
>g : (s: string) => void
>s : string
// This needs to not crash (outer node is not expression)
({ f(x) { } }) satisfies { f(s: string): void };
>({ f(x) { } }) satisfies { f(s: string): void } : { f(x: string): void; }
>({ f(x) { } }) : { f(x: string): void; }
>{ f(x) { } } : { f(x: string): void; }
>f : (x: string) => void
>x : string
>f : (s: string) => void
>s : string
|