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
|
//// [coAndContraVariantInferences4.ts]
const enum SyntaxKind {
Modifier,
Decorator,
}
interface Node {
kind: SyntaxKind;
}
interface Modifier extends Node { kind: SyntaxKind.Modifier; }
interface Decorator extends Node { kind: SyntaxKind.Decorator; }
declare function isModifier(node: Node): node is Modifier;
declare function isDecorator(node: Node): node is Decorator;
declare function every<T, U extends T>(array: readonly T[], callback: (element: T) => element is U): array is readonly U[];
declare const modifiers: readonly Decorator[] | readonly Modifier[];
function foo() {
every(modifiers, isModifier);
every(modifiers, isDecorator);
}
//// [coAndContraVariantInferences4.js]
"use strict";
function foo() {
every(modifiers, isModifier);
every(modifiers, isDecorator);
}
|