interface LabelledValue {
label: string;
}
通过在属性名称后添加问号?
来定义可选属性。
interface SquareConfig {
color?: string;
width?: number;
}
使用关键字readonly
定义只读属性。
interface Point {
readonly x: number;
readonly y: number;
}
使用接口描述方法类型时,我们只需要提供方法参数及返回类型,参数列表中每个参数必须包含名称和类型。
interface SearchFunc {
(source: string, subString: string): boolean;
}
let mySearch: SearchFunc;
mySearch = function(src: string, sub: string): boolean {
let result = src.search(sub);
return result > -1;
}
使用接口描述方法类型更像是C#语言中的委托定义。
接口也支持描述索引类型。
interface StringArray {
[index: number]: string;
}
let myArray: StringArray;
myArray = ["Bob", "Fred"];
let myStr: string = myArray[0];
索引签名类型只支持
number
和string
。
interface Shape {
color: string;
}
interface Square extends Shape {
sideLength: number;
}