TypeScript简单的代码片段

TypeScript中,接口、接口实现、函数重载;

interface IThing{

    name:string;

    age:number;

    sayHello:{

        (name:string):string;

        (age:number):number;

    }

}



class Thing implements IThing{

    name:string;

    age:number;

    

    sayHello(name:string):string;

    sayHello(age:number):number;

    

    sayHello(arg:any):any{

        if(typeof arg === 'string'){

            return 'hello, ' + arg;

        }else if(typeof arg === 'number'){

            return arg*2;

        }else

        {

            throw new Error('invalid input args!!!');

        }

    }

}



interface ICar{

    engine:string;

}

class Car implements ICar{

    constructor(public engine:string){

    }

}

var thing = new Thing();

thing.name = 'paul cheung';

thing.age = 23;

thing.sayHello("this is a string~~~");

var car = new Car("Tesxt");

document.body.innerText = car.engine;

对应的javascript代码:

var Thing = (function () {

    function Thing() {

    }

    Thing.prototype.sayHello = function (arg) {

        if (typeof arg === 'string') {

            return 'hello, ' + arg;

        } else if (typeof arg === 'number') {

            return arg * 2;

        } else {

            throw new Error('invalid input args!!!');

        }

    };

    return Thing;

})();



var Car = (function () {

    function Car(engine) {

        this.engine = engine;

    }

    return Car;

})();

var thing = new Thing();

thing.name = 'paul cheung';

thing.age = 23;

thing.sayHello("this is a string~~~");

var car = new Car("Tesxt");

document.body.innerText = car.engine;

TypeScript类定义和继承、module定义及使用:

class Auto{

    engine:string;

    constructor(engine:string){

        this.engine = engine;

    }

}



class Truck extends Auto{

    bigTires:bool;

    constructor(engine:string,bigTires:bool){

        super(engine);

        this.bigTires = bigTires;

    }

}



module Shapes{

   export class Person{

        constructor(

            public name:string,

            public age:number

        ){}

    }    

}

var p = new Shapes.Person("paul cheung", 21)



///<reference path='shapes.ts'/>

javascript代码:

var __extends = this.__extends || function (d, b) {

    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];

    function __() { this.constructor = d; }

    __.prototype = b.prototype;

    d.prototype = new __();

};

var Auto = (function () {

    function Auto(engine) {

        this.engine = engine;

    }

    return Auto;

})();



var Truck = (function (_super) {

    __extends(Truck, _super);

    function Truck(engine, bigTires) {

        _super.call(this, engine);

        this.bigTires = bigTires;

    }

    return Truck;

})(Auto);



var Shapes;

(function (Shapes) {

    var Person = (function () {

        function Person(name, age) {

            this.name = name;

            this.age = age;

        }

        return Person;

    })();

    Shapes.Person = Person;

})(Shapes || (Shapes = {}));

var p = new Shapes.Person("paul cheung", 21);

using http://www.typescriptlang.org/playground/ to do demo~~~

你可能感兴趣的:(script)