avatar
童琦杰
Feb 27, 2017Technology

Typescript - 接口

属性

typescript
interface LabelledValue {
    label: string;
}

通过在属性名称后添加问号?来定义可选属性。

typescript
interface SquareConfig {
    color?: string;
    width?: number;
}

使用关键字readonly定义只读属性。

typescript
interface Point {
    readonly x: number;
    readonly y: number;
}

方法类型

使用接口描述方法类型时,我们只需要提供方法参数及返回类型,参数列表中每个参数必须包含名称和类型。

typescript
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#语言中的委托定义。

索引类型

接口也支持描述索引类型。

typescript
interface StringArray {
    [index: number]: string;
}

let myArray: StringArray;
myArray = ["Bob", "Fred"];

let myStr: string = myArray[0];

索引签名类型只支持numberstring

接口继承

typescript
interface Shape {
    color: string;
}

interface Square extends Shape {
    sideLength: number;
}
© 2015-2022 tongqijie.com 版权所有沪ICP备17000682号