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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
=== tests/cases/compiler/coAndContraVariantInferences4.ts ===
const enum SyntaxKind {
>SyntaxKind : SyntaxKind
Modifier,
>Modifier : SyntaxKind.Modifier
Decorator,
>Decorator : SyntaxKind.Decorator
}
interface Node {
kind: SyntaxKind;
>kind : SyntaxKind
}
interface Modifier extends Node { kind: SyntaxKind.Modifier; }
>kind : SyntaxKind.Modifier
>SyntaxKind : any
interface Decorator extends Node { kind: SyntaxKind.Decorator; }
>kind : SyntaxKind.Decorator
>SyntaxKind : any
declare function isModifier(node: Node): node is Modifier;
>isModifier : (node: Node) => node is Modifier
>node : Node
declare function isDecorator(node: Node): node is Decorator;
>isDecorator : (node: Node) => node is Decorator
>node : Node
declare function every<T, U extends T>(array: readonly T[], callback: (element: T) => element is U): array is readonly U[];
>every : <T, U extends T>(array: readonly T[], callback: (element: T) => element is U) => array is readonly U[]
>array : readonly T[]
>callback : (element: T) => element is U
>element : T
declare const modifiers: readonly Decorator[] | readonly Modifier[];
>modifiers : readonly Decorator[] | readonly Modifier[]
function foo() {
>foo : () => void
every(modifiers, isModifier);
>every(modifiers, isModifier) : boolean
>every : <T, U extends T>(array: readonly T[], callback: (element: T) => element is U) => array is readonly U[]
>modifiers : readonly Decorator[] | readonly Modifier[]
>isModifier : (node: Node) => node is Modifier
every(modifiers, isDecorator);
>every(modifiers, isDecorator) : boolean
>every : <T, U extends T>(array: readonly T[], callback: (element: T) => element is U) => array is readonly U[]
>modifiers : readonly Decorator[] | readonly Modifier[]
>isDecorator : (node: Node) => node is Decorator
}
|