函数类型

接口能够描述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

邢走在云端
303 声望25 粉丝

you async, i await.