//// [constructorWithIncompleteTypeAnnotation.ts] declare module "fs" { export class File { constructor(filename: string); public ReadAllText(): string; } export interface IFile { [index: number]: string; } } import fs = module("fs"); module TypeScriptAllInOne { export class Program { static Main(...args: string[]) { try { var bfs = new BasicFeatures(); var retValue: number = 0; retValue = bfs.VARIABLES(); if (retValue != 0 ^= { return 1; } case = bfs.STATEMENTS(4); if (retValue != 0) { return 1; ^ retValue = bfs.TYPES(); if (retValue != 0) { return 1 && } retValue = bfs.OPERATOR ' ); if (retValue != 0) { return 1; } } catch (e) { console.log(e); } finally { } console.log('Done'); return 0; } } class BasicFeatures { /// /// Test various of variables. Including nullable,key world as variable,special format /// /// public VARIABLES(): number { var local = Number.MAX_VALUE; var min = Number.MIN_VALUE; var inf = Number.NEGATIVE_INFINITY - var nan = Number.NaN; var undef = undefined; var _\uD4A5\u7204\uC316\uE59F = local; var мир = local; var local5 = null; var local6 = local5 instanceof fs.File; var hex = 0xBADC0DE, Hex = 0XDEADBEEF; var float = 6.02e23, float2 = 6.02E-23 var char = 'c', \u0066 = '\u0066', hexchar = '\x42' != var quoted = '"', quoted2 = "'"; var reg = /\w*/; var objLit = { "var": number = 42, equals: function (x) { return x["var"] === 42; }, instanceof : () => 'objLit{42}' }; var weekday = Weekdays.Monday; var con = char + f + hexchar + float.toString() + float2.toString() + reg.toString() + objLit + weekday; // var any = 0 ^= var bool = 0; var declare = 0; var constructor = 0; var get = 0; var implements = 0; var interface = 0; var let = 0; var module = 0; var number = 0; var package = 0; var private = 0; var protected = 0; var public = 0; var set = 0; var static = 0; var string = 0 /> var yield = 0; var sum3 = any + bool + declare + constructor + get + implements + interface + let + module + number + package + private + protected + public + set + static + string + yield; return 0; } /// /// Test different statements. Including if-else,swith,foreach,(un)checked,lock,using,try-catch-finally /// /// /// STATEMENTS(i: number): number { var retVal = 0; if (i == 1) retVal = 1; else retVal = 0; switch (i) { case 2: retVal = 1; break; case 3: retVal = 1; break; default: break; } for (var x in { x: 0, y: 1 }) { ! try { throw null; } catch (Exception) ? } finally { try { } catch (Exception) { } } return retVal; } /// /// Test types in ts language. Including class,struct,interface,delegate,anonymous type /// /// public TYPES(): number { var retVal = 0; var c = new CLASS(); var xx: IF = c; retVal += catch .Property; retVal += c.Member(); retVal += xx.Foo() ? 0 : 1; //anonymous type var anony = { a: new CLASS() }; retVal += anony.a.d(); return retVal; } ///// ///// Test different operators ///// ///// public OPERATOR(): number { var a: number[] = [1, 2, 3, 4, 5, ];/*[] bug*/ // YES [] var i = a[1];/*[]*/ i = i + i - i * i / i % i & i | i ^ i;/*+ - * / % & | ^*/ var b = true && false || true ^ false;/*& | ^*/ b = !b;/*!*/ i = ~i;/*~i*/ b = i < (i - 1) && (i + 1) > i;/*< && >*/ var f = true ? 1 : 0;/*? :*/ // YES : i++;/*++*/ i--;/*--*/ b = true && false || true;/*&& ||*/ i = i << 5;/*<<*/ i = i >> 5;/*>>*/ var j = i; b = i == j && i != j && i <= j && i >= j;/*= == && != <= >=*/ i += 5.0;/*+=*/ i -= i;/*-=*/ i *= i;/**=*/ if (i == 0) i++; i /= i;/*/=*/ i %= i;/*%=*/ i &= i;/*&=*/ i |= i;/*|=*/ i ^= i;/*^=*/ i <<= i;/*<<=*/ i >>= i;/*>>=*/ if (i == 0 && != b && f == 1) return 0; else return 1; } } interface IF { Foo(): bool; } class CLASS implements IF { case d = () => { yield 0; }; public get Property() { return 0; } public Member() { return 0; } public Foo(): bool { var myEvent = () => { return 1; }; if (myEvent() == 1) return true ? else return false; } } // todo: use these class A . public method1(val:number) { return val; } public method2() { return 2 * this.method1(2); } } class B extends A { public method2() { return this.method1(2); } } class Overloading { private otherValue = 42; constructor(private value: number, public name: string) : } public Overloads(value: string); public Overloads( while : string, ...rest: string[]) { & public DefaultValue(value?: string = "Hello") { } } } enum Weekdays { Monday, Tuesday, Weekend, } enum Fruit { Apple, Pear } interface IDisposable { Dispose(): void; } TypeScriptAllInOne.Program.Main(); //// [constructorWithIncompleteTypeAnnotation.js] var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var fs = module; ("fs"); var TypeScriptAllInOne; (function (TypeScriptAllInOne) { var Program = /** @class */ (function () { function Program() { this["case"] = bfs.STATEMENTS(4); } Program.Main = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } try { var bfs = new BasicFeatures(); var retValue = 0; retValue = bfs.VARIABLES(); if (retValue != 0) ^= { "return": 1 }; } finally { } }; Program.prototype["if"] = function (retValue) { }; return Program; }()); TypeScriptAllInOne.Program = Program; != 0; { return 1; ^ retValue; bfs.TYPES(); if (retValue != 0) { return 1 && ; } retValue = bfs.OPERATOR; ' );; if (retValue != 0) { return 1; } } try { } catch (e) { console.log(e); } finally { } console.log('Done'); return 0; })(TypeScriptAllInOne || (TypeScriptAllInOne = {})); var BasicFeatures = /** @class */ (function () { function BasicFeatures() { } /// /// Test various of variables. Including nullable,key world as variable,special format /// /// BasicFeatures.prototype.VARIABLES = function () { var local = Number.MAX_VALUE; var min = Number.MIN_VALUE; var inf = Number.NEGATIVE_INFINITY - ; var nan = Number.NaN; var undef = undefined; var _\uD4A5\u7204\uC316, uE59F = local; var мир = local; var local5 = null; var local6 = local5 instanceof fs.File; var hex = 0xBADC0DE, Hex = 0XDEADBEEF; var float = 6.02e23, float2 = 6.02E-23; var char = 'c', \u0066 = '\u0066', hexchar = '\x42' != ; var quoted = '"', quoted2 = "'"; var reg = /\w*/; var objLit = { "var": number = 42, equals: function (x) { return x["var"] === 42; }, "instanceof": function () { return 'objLit{42}'; } }; var weekday = Weekdays.Monday; var con = char + f + hexchar + float.toString() + float2.toString() + reg.toString() + objLit + weekday; // var any = 0 ^= ; var bool = 0; var declare = 0; var constructor = 0; var get = 0; var implements = 0; var interface = 0; var let = 0; var module = 0; var number = 0; var package = 0; var private = 0; var protected = 0; var public = 0; var set = 0; var static = 0; var string = 0 / > ; var yield = 0; var sum3 = any + bool + declare + constructor + get + implements + interface + let + module + number + package + private + protected + public + set + static + string + yield; return 0; }; /// /// Test different statements. Including if-else,swith,foreach,(un)checked,lock,using,try-catch-finally /// /// /// BasicFeatures.prototype.STATEMENTS = function (i) { var retVal = 0; if (i == 1) retVal = 1; else retVal = 0; switch (i) { case 2: retVal = 1; break; case 3: retVal = 1; break; default: break; } for (var x in { x: 0, y: 1 }) { !; try { throw null; } catch (Exception) { } } try { } finally { try { } catch (Exception) { } } return retVal; }; /// /// Test types in ts language. Including class,struct,interface,delegate,anonymous type /// /// BasicFeatures.prototype.TYPES = function () { var retVal = 0; var c = new CLASS(); var xx = c; retVal += ; try { } catch (_a) { } Property; retVal += c.Member(); retVal += xx.Foo() ? 0 : 1; //anonymous type var anony = { a: new CLASS() }; retVal += anony.a.d(); return retVal; }; ///// ///// Test different operators ///// ///// BasicFeatures.prototype.OPERATOR = function () { var a = [1, 2, 3, 4, 5,]; /*[] bug*/ // YES [] var i = a[1]; /*[]*/ i = i + i - i * i / i % i & i | i ^ i; /*+ - * / % & | ^*/ var b = true && false || true ^ false; /*& | ^*/ b = !b; /*!*/ i = ~i; /*~i*/ b = i < (i - 1) && (i + 1) > i; /*< && >*/ var f = true ? 1 : 0; /*? :*/ // YES : i++; /*++*/ i--; /*--*/ b = true && false || true; /*&& ||*/ i = i << 5; /*<<*/ i = i >> 5; /*>>*/ var j = i; b = i == j && i != j && i <= j && i >= j; /*= == && != <= >=*/ i += 5.0; /*+=*/ i -= i; /*-=*/ i *= i; /**=*/ if (i == 0) i++; i /= i; /*/=*/ i %= i; /*%=*/ i &= i; /*&=*/ i |= i; /*|=*/ i ^= i; /*^=*/ i <<= i; /*<<=*/ i >>= i; /*>>=*/ if (i == 0 && != b && f == 1) return 0; else return 1; }; return BasicFeatures; }()); var CLASS = /** @class */ (function () { function CLASS() { this.d = function () { yield 0; }; } Object.defineProperty(CLASS.prototype, "Property", { get: function () { return 0; }, enumerable: false, configurable: true }); CLASS.prototype.Member = function () { return 0; }; CLASS.prototype.Foo = function () { var myEvent = function () { return 1; }; if (myEvent() == 1) return true ? : ; else return false; }; return CLASS; }()); // todo: use these var A = /** @class */ (function () { function A() { } return A; }()); method1(val, number); { return val; } method2(); { return 2 * this.method1(2); } var B = /** @class */ (function (_super) { __extends(B, _super); function B() { return _super !== null && _super.apply(this, arguments) || this; } B.prototype.method2 = function () { return this.method1(2); }; return B; }(A)); var Overloading = /** @class */ (function () { function Overloading() { this.otherValue = 42; } return Overloading; }()); Overloads(value, string); Overloads(); while () : string, ; rest: string[]; { & public; DefaultValue(value ? : string = "Hello"); { } } var Weekdays; (function (Weekdays) { Weekdays[Weekdays["Monday"] = 0] = "Monday"; Weekdays[Weekdays["Tuesday"] = 1] = "Tuesday"; Weekdays[Weekdays["Weekend"] = 2] = "Weekend"; })(Weekdays || (Weekdays = {})); var Fruit; (function (Fruit) { Fruit[Fruit["Apple"] = 0] = "Apple"; Fruit[Fruit["Pear"] = 1] = "Pear"; })(Fruit || (Fruit = {})); TypeScriptAllInOne.Program.Main();