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~~~

TypeScript简单的代码片段的更多相关文章

  1. js/jquery/html前端开发常用到代码片段

    1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...

  2. 非常实用的PHP代码片段推荐

    当使用PHP进行开发的时候,如果你自己收 藏 了一些非常有用的方法或者代码片段,那么将会给你的开发工作带来极大的便利.今天我们将介绍10个超级好用的PHP代码片段,希望大家能够喜欢! 1.  使用te ...

  3. Sublime Text3—Code Snippets(自定义代码片段)

    摘要 程序员总是会不断的重复写一些简单的代码片段,为了提高编码效率,我们可以把经常用到的代码保存起来再调用. 平时用sublime安装各种插件,使用Tab键快速补全,便是snippets(可译为代码片 ...

  4. phpstorm设置代码片段

    tab 向后推进 shift+tab 向前推进 ctrl+d 复制整行 ctrl+Y删除整行 代码片段就是代码快捷键,如果你设置了www.baidu.com这些内容,但是不想一直重复的打,可以设置个代 ...

  5. VS里的 代码片段(Code snippet)很有用,制作也很简单

    工欲善其事必先利其器,而 Visual Studio 就是我们的开发利器. 上一篇文章,介绍了一个很棒的快捷键,如果你还没用过这个快捷键,看完之后应该会豁然开朗.如果你已经熟练的应用它,也会温故而知新 ...

  6. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  7. Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段(转)

    摘自:http://blog.csdn.net/shakespeare001/article/details/7926783 Adapter是连接后端数据和前端显示的适配器接口,是数据Data和UI( ...

  8. 10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库. 今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 1.平滑滚动到 ...

  9. [转]Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段

      收藏ArrayAdapter.SimpleAdapter和BaseAdapter的一些简短代码片段,希望用时方便想起其用法. 1.ArrayAdapter 只可以简单的显示一行文本 代码片段: A ...

随机推荐

  1. 【转载】servlet三大作用域:request,session,application

    javaweb开发中Servlet三大域对象的应用(request.session.application(ServletContext)). 1. requestrequest是表示一个请求,只要发 ...

  2. 【剑指Offer】51、构建乘积数组

      题目描述:   给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1].   其中B中的元素B[i]=A[0] * A[1]... * A[i-1] * A[i+1] ...

  3. python之testlink模块

    1.安装:pip install TestLink-API-Python-client >>>>>>待续

  4. html表单练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. Bamboo Django Celery定时任务和时间设置

    1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...

  6. Cursor、Exception、Procedure、Function、Package、Trigger(day06)

    回顾: 1.record类型 定义record类型,声明变量,保存s_dept表中id = 31部门信息 declare /* 定义record类型 */ type deptrecord is rec ...

  7. Idea 类注释和方法注释

    类注释 先打开Settings > Editor > File and Code Templates Includes Includes File Header 再随机新建个类就有类注释 ...

  8. 2018 noip 考前临死挣扎

    基础算法 倍增 贪心 分块 二分 三分 数据结构 线段树 对顶堆 数学 质数 约数 同余 组合 矩阵乘法 图论 二分图判定以及最大匹配 字符串 Tire树 KMP 最小表示法 Hash Manache ...

  9. 游标后面select 带有in时

    今天遇到一个问题,使用游标时,在给游标填充值的时候,select  语句中带有 where查询条件,并且还有 in子句. 本来我是这样写的,试了很多次都不出结果,当然number in (304010 ...

  10. 【ACM】hdu_zs2_1004_Problem D _201308030856

    Problem D Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)Total Subm ...