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 31 32 33
|
=== tests/cases/conformance/expressions/typeSatisfaction/typeSatisfaction_contextualTyping1.ts ===
type Predicates = { [s: string]: (n: number) => boolean };
>Predicates : { [s: string]: (n: number) => boolean; }
>s : string
>n : number
const p = {
>p : { isEven: (n: number) => boolean; isOdd: (n: number) => boolean; }
>{ isEven: n => n % 2 === 0, isOdd: n => n % 2 === 1} satisfies Predicates : { isEven: (n: number) => boolean; isOdd: (n: number) => boolean; }
>{ isEven: n => n % 2 === 0, isOdd: n => n % 2 === 1} : { isEven: (n: number) => boolean; isOdd: (n: number) => boolean; }
isEven: n => n % 2 === 0,
>isEven : (n: number) => boolean
>n => n % 2 === 0 : (n: number) => boolean
>n : number
>n % 2 === 0 : boolean
>n % 2 : number
>n : number
>2 : 2
>0 : 0
isOdd: n => n % 2 === 1
>isOdd : (n: number) => boolean
>n => n % 2 === 1 : (n: number) => boolean
>n : number
>n % 2 === 1 : boolean
>n % 2 : number
>n : number
>2 : 2
>1 : 1
} satisfies Predicates;
|