淺探typescript(二)
阿新 • • 發佈:2019-01-13
class 類
class A{
a: string;
name:string;
constructor(a:string,name:string){
this.a = a;
this.name = name;
}
}
繼承
class B extends A{ b: string; construstor(a,name){ super(a,name); this.b = '456'; } } //例項化 var b = new B('a','abc'); console.log(b.name);
修飾符靜態方法,不需要例項化處理,可直接通過類來呼叫
class Animal{
static eat(){
console.log('吃')
}
}
Animal.eat();
ts中的三種修飾符
ts中三種修飾符 修飾屬性和方法 public private protected
- public 修飾屬性和方法是公共的,任何地方都可以訪問
- private 私有的 不能在外部宣告和使用
- protected 修飾屬性和方法是受保護的 區別是子類可以訪問
class Animal2{ //public name:string; //private name:string; protected name:string; constructor(name:string){ this.name = name; } public eat():string{ return '吃老鼠'; } } var a = new Animal2('abc') ; //a.name //a.eat() class Dog extends Animal2{ constructor(name){ super(name); } action():string{ return this.name; //呼叫父類的 } } var d = new Dog('tom'); d.action();
類實現介面
實現 implements
例如:
門是一個類 防盜門是屬於門的子類 防盜門新增一個報警器的功能
除了門,車也有報警器的功能
報警器提取出來,作為一個介面 門,車去實現它
首先定義報警器的介面
interface Alarm{
sing(); //抽象空的方法 規範
}
interface Light{
lightOn();
lightOff();
}
定義門的類及實現防盜門繼承門
class Door{}; class SecurityDoor extends Door implements Alarm{ sing(){ console.log("sing...") } }
一個類可以實現多個介面
class Car implements Alarm,Light{
sing(){
console.log('....')
}
lightOn(){
}
lightOff(){
}
}
呼叫它們的方法
var s2 = new SecurityDoor();
var car = new Car();
s2.sing();
car.sing()