在TS中,和ES6的JavaScript一样都是使用Class来定义类型的。
TS中可以使用三种修饰符号,分别是publish private protected
publish:修饰的是属性和方法,表示在任何地方都可以访问的到,默认所以属性和方法都是public
private:修饰的属性和方法是私有的,表示不能再声明它的类外访问,不能继承
protected:修饰的属性和方法是受保护的,可以在子类中访问和继承
TS 类和JavaScript中类语法区别
在TS中,可以在constructor中申明参数的修饰符,这种写法和在constructor外定义用指定修改符创建的属性一样
class Animal {
// public name: string;
public constructor(public name) {
// this.name = name;
}
}
类和接口
在类型,可以实现(implements)接口的方法
interface Alarm {
alert(): void;
}
class Door {
}
class SecurityDoor extends Door implements Alarm {
alert() {
console.log('SecurityDoor alert');
}
}
class Car implements Alarm {
alert() {
console.log('Car alert');
}
}
注意:接口可以继承(extend)类。当类(class)当做一个类型的时候,使用new对象的时候,其实也可以回创建一个相关的接口,接口其实继承的是新创建的接口。实例如下
class Point {
x: number;
y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
}
interface Point3d extends Point {
z: number;
}
let point3d: Point3d = {x: 1, y: 2, z: 3};
网友评论