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~~~
posted on 2013-08-02 17:35 paul_cheung 阅读(482) 评论(0) 编辑 收藏 举报