1.感謝偉大的typescript中文網(wǎng)站,看一遍網(wǎng)站基本可以學(xué)習(xí)到ts的精髓了
ts的類型兼容問題次伶,
1.不同類型間賦值的時(shí)候
typeScript結(jié)構(gòu)化類型系統(tǒng)的基本規(guī)則是怕午,如果x要兼容y,那么y至少具有與x相同的屬性。
name: string;
}
let x: Named;
// y's inferred type is { name: string; location: string; }
let y = { name: 'Alice', location: 'Seattle' };
x = y;
2.不同函數(shù)賦值的時(shí)候
let y = (b: number, s: string) => 0;
y = x; // OK
x = y; // Error
y有個(gè)必需的第二個(gè)參數(shù)幌衣,但是x并沒有,所以不允許賦值。
JavaScript允許忽略參數(shù)
3.下面來看看如何處理返回值類型泪漂,創(chuàng)建兩個(gè)僅是返回值類型不同的函數(shù):
let x = () => ({name: 'Alice'});
let y = () => ({name: 'Alice', location: 'Seattle'});
x = y; // OK
y = x; // Error because x() lacks a location property
類型系統(tǒng)強(qiáng)制源函數(shù)的返回值類型必須是目標(biāo)函數(shù)返回值類型的子類型
在vue項(xiàng)目使用ts。ts使用了裝飾器模式讓我們寫的代碼能夠和
1.@components()
聲明組件
2.@ props
聲明props
3.@state
聲明state的數(shù)據(jù)
4.普通變量
組件data里的數(shù)據(jù) private name:String
5.get()
聲明計(jì)算屬性
6.@watch
聲明監(jiān)聽器
7.@inject
注入父組件的數(shù)據(jù)
8.@action
聲明store里改變數(shù)據(jù)的動(dòng)作