函数类型
接口能够描述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