typescript
1.補充js沒有的特性--類型,抽象,接口
2.嚴謹
安裝:(如果下載失敗 可能權限不夠,可以右鍵命令提示符(cmd)管理員運行)
cnpm i typescript -g
1.類型:
變量,參數,返回值
指明類型:
1.顯式申明 let a:string;
2.隱式申明 let a=12;
如果讓變量什麼都能裝
1.不給初始值
2.顯示申明any
聯合類型
let a:(number,string)="12"
let a:(number,string)=12
(類型1|類型2|類型3)
元組類型 [類型1,類型2] 之後push的類型不限制
枚舉-列舉有限的可能性
void類型-常用的返回值 函數返回爲空
null/undefined
never
2.類
新的寫法
訪問修飾符--public/private/protected
public 任何人都能修改
private 只有類內部能使用
protected 只有類和子類能使用
例如:private name:string;
訪問修飾符怎麼用?
“最小訪問原則”,“屬性都是private和protected,方法可以是public”
//原版
class Person{
protected name:string;
public age:number;
constructor(name:string,age:number){
this.name = name
this.age = age
}
show():void{
console.log(`姓名:${this.name} 年齡:${this.age}`)
}
}
//簡寫
class Person{
constructor(private name:string,private age:number){
}
show():void{
console.log(`姓名:${this.name} 年齡:${this.age}`)
}
}
let p = new Person("fanshihao",666)
p.show();
修飾符
static 靜態成員--無需實例化可調用
const 只讀成員--只讀的 不能修改
存取器
set/get 編譯不了es3 es4 主要是要用到Object.defineProperty
3.高級特性
抽象,接口s
//抽象類只能作爲父級使用,不能直接被實例化
abstract class Shape{}
一些對象具有共同的特性
1.繼承
2.實現接口
抽象類---只提供模板,而不自己實現(作用:規範所有的子類)
即是 多態
接口,抽象爲了規範所有子類
typescript
1.類型
2.修飾符
訪問修飾符
const,static
3.泛型
let arr:string[]=[]
4.抽象類,接口
推薦接口