TypeScript interface 函數類型 可索引類型

函數類型

接口能夠描述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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章