两者的优点
JavaScript特点:
JavaScript 是一种脚本编写语言,无需编译,由浏览器逐行加载解释执行。
JavaScript 是一种基于对象的语言,可以创建对象同时使用现有对象。但是 Javascript 并不支持其它面向对象语言所具有的继承和重载功能。
JavaScript 的语法为弱类型。
JavaScript 语言较为安全
JavaScript 语言具有动态性
JavaScript JavaScript是一种跨平台的语言。
JavaScript 兼容性较好。
TypeScript 特点:
TypeScript 是开源语言,使用 Apache 授权协议
TypeScript 增加了静态类型、类、模块、接口和类型注解
- TypeScript可以使用三种访问修饰符,分别是public、private和protected
- 可以定义abstract抽象类
- 可以创建接口,关键字和对象的类型一样,但是功能类似于JAVA,接口可以继承
接口
function printLabel(labelledObj: { label: string }) {
console.log(labelledObj.label);
}
let myObj = { size: 10, label: "Size 10 Object" };
printLabel(myObj);
类
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
say(): string {
return `My name is ${this.name}`;
}
}
let Animal = new Animal('elephant');
console.log(Animal.say()); // My name is elephant
TypeScript 可用于开发大型的应用
TypeScript 易学易于理解
TypeScript 便于做注释。
两者的区别
TypeScript 从核心语言方面和类概念的模塑方面对 JavaScript 对象模型进行扩展。
JavaScript 代码可以与 TypeScript 一同工作,同时可以使用编译器将 TypeScript 代码转换为 JavaScript。
TypeScript 通过类型注解提供编译时的静态类型检查。
TypeScript 中的数据要求带有明确的类型,JavaScript不要求。
TypeScript 为函数提供了缺省参数值。
TypeScript 引入了 JavaScript 中没有的“类”概念,他与es6的区别在于。
TypeScript
class Greeter {
greeting: string; // TypeScript 需要多加一句
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
ES6
class Greeter {
constructor(message) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
javascript
function Greeter(){
this.greeting = message,
function greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。