函數類型
接口能夠描述JavaScript中對象擁有的各種各樣的外形。 除了描述帶有屬性的普通對象外,接口也可以描述函數類型。 ---- 中文官方文檔
自己寫的demo🌰:
// 函數類型
interface Add {
(a:number, b:number):number
}
let sum:Add = function (a:number, b:number) {
return a + b;
}
console.log(sum(1,3));
對於函數類型的類型檢查來說,函數的參數名不需要與接口裏定義的名字相匹配 ,甚至不需要指定類型,TypeScript的類型系統會推斷出參數類型。
interface Add {
(a:number, b:number):number
}
let sum:Add = function (c, d) {
return c + d;
}
console.log(sum(1,3));
函數中的 c、d兩個參數只是形式參數,只要參數類型、位置相匹配就行。
可索引的類型
可索引類型具有一個 索引簽名,它描述了對象索引的類型,還有相應的索引返回值類型。
官網demo🌰
通過number類型索引,得到string類型的返回值
interface StringArray {
[index: number]: string;
}
let myArray: StringArray;
myArray = ["Bob", "Fred"];
let myStr: string = myArray[0];
我的demo🌰
通過string類型索引,得到number數字類型的返回值
interface Person {
[index: string]: number
}
let person: Person;
person ={
"age": 18
};
let age: number = person["age"];
console.log(age); // 18