TypeScript是一种由微软开发的开源编程语言,它在2012年10月被宣布。TypeScript与CoffeeScript或Dart等语言类似,它提供了可选的静态类型和基于类的面向对象编程(OOP),专为大型应用程序的开发而设计,并且可以转译为JavaScript。TypeScript的许多特性与C#相似,包括原始类型(如数字、布尔值、字符串等)、泛型或对象语法。尽管TypeScript具有对象、模块、类、接口等主要特性,但它没有protected
和abstract
关键字。
截至目前,TypeScript的版本为0.9.5,而1.x版本中计划引入的新特性包括Async/await
、Mixins(可能包括abstract
或扩展方法)以及protected
访问。
更多关于TypeScript的信息,可以访问其官方网站:
如果想测试TypeScript代码,可以访问:
其他相关语言的官方网站包括:
以下是使用TypeScript编写的一段代码示例:
class Animal {
constructor(public name: string) { }
move(meters: number) {
alert(`${this.name} moved ${meters} m.`);
}
}
class Snake extends Animal {
constructor(name: string) { super(name); }
move() {
alert("Slithering...");
super.move(5);
}
}
class Horse extends Animal {
constructor(name: string) { super(name); }
move() {
alert("Galloping...");
super.move(45);
}
}
var sam = new Snake("Sammy the Python");
var tom: Animal = new Horse("Tommy the Palomino");
sam.move();
tom.move(34);
这段代码定义了三个类:Animal
、Snake
和Horse
。Snake
和Horse
类继承自Animal
类。每个类都有一个名为move
的方法,用于模拟动物的移动。Snake
类重写了move
方法,以模拟蛇的移动方式,而Horse
类则模拟了马的移动方式。
以下是上述TypeScript代码转译为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 Animal = (function () {
function Animal(name) {
this.name = name;
}
Animal.prototype.move = function (meters) {
alert(this.name + " moved " + meters + " m.");
};
return Animal;
})();
var Snake = (function (_super) {
__extends(Snake, _super);
function Snake(name) {
_super.call(this, name);
}
Snake.prototype.move = function () {
alert("Slithering...");
_super.prototype.move.call(this, 5);
};
return Snake;
})(Animal);
var Horse = (function (_super) {
__extends(Horse, _super);
function Horse(name) {
_super.call(this, name);
}
Horse.prototype.move = function () {
alert("Galloping...");
_super.prototype.move.call(this, 45);
};
return Horse;
})(Animal);
var sam = new Snake("Sammy the Python");
var tom = new Horse("Tommy the Palomino");
sam.move();
tom.move(34);
这段JavaScript代码与TypeScript代码执行相同的功能,但它使用了JavaScript的原型继承机制来实现类继承。
TypeScript的主要优势在于: