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
|
/// <reference path="fourslash.ts" />
//// interface Sundries {
//// broken: boolean;
//// }
////
//// interface Supplies {
//// spoiled: boolean;
//// }
////
//// interface Crate<T> {
//// contents: T;
//// isSundries(): this is Crate<Sundries>;
//// isSupplies(): this is Crate<Supplies>;
//// isPackedTight(): this is (this & {extraContents: T});
//// }
//// const crate: Crate<any>;
//// if (crate.isPackedTight()) {
//// crate./*1*/;
//// }
//// if (crate.isSundries()) {
//// crate.contents./*2*/;
//// if (crate.isPackedTight()) {
//// crate./*3*/;
//// }
//// }
//// if (crate.isSupplies()) {
//// crate.contents./*4*/;
//// if (crate.isPackedTight()) {
//// crate./*5*/;
//// }
//// }
goTo.marker("1");
verify.completionListContains("extraContents");
goTo.marker("2");
verify.completionListContains("broken");
goTo.marker("3");
verify.completionListContains("extraContents");
goTo.marker("4");
verify.completionListContains("spoiled");
goTo.marker("5");
verify.completionListContains("extraContents");
|