接口的作用就是爲這些類型命名和爲你的代碼或第三方代碼定義契約。 -----來源:官方文檔
個人理解
我的理解:接口就是一個自定義的類型
一個示例🌰: 求一個數的平方
function sqr(num: number) {
console.log(num*num);
}
sqr(3) // 9
sqr("no") // 報錯:Argument of type '"no"' is not assignable to parameter of type 'number'
這時候編輯器規範這個參數類型,類型就是後面的number
下方的官方代碼🌰
interface LabelledValue {
label: string;
}
function printLabel(labelledObj: LabelledValue) {
console.log(labelledObj.label);
}
let myObj = { size: 10, label: "Size 10 Object" };
printLabel(myObj);
這時候就當作labelledObj的參數類型爲LabelledValue。👀
LabelledValue有一定的規範,也就是其中有個參數是label,並且是string類型,那麼我們定義這個參數的時候就要符合這個接口的規範。要有這個屬性,並且它的類型爲string。
(多了沒事,比如官方示例中多了個size)
但是我這樣寫編輯器會報錯,但是可以編譯通過
printLabel({ size: 10, label: "Size 10 Object" });
代碼截圖(可以編譯通過但是有個參數報紅)
提示警告信息
所以儘管可以編譯通過,我還是會使得參數和接口的裏面的參數及類型保持一致✔
暫時就寫這麼點