TypeScript接口

接口定义

interface Person {
    name: string
    age: number
}
function print(p: Person) {
    console.log(p.name);
    console.log(p.age);
}
let persion = {age:10, name:"小明"};
print(person)

类型检查器不会检查属性的顺序,只要相应的属性存在并且类型匹配即可。

可选属性

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

定义可选属性只需要在属性后面加个?即可。

只读属性

一些对象属性只能在对象被创建的时候修改属性的值,可以用readonly指定只读属性。

interface Point {
    readonly x;
    readonly y;
}

readonlyconst的区别主要在于一个是针对变量一个是针对对象的属性。

属性检查

interface SquareConfig {
    color?: string;
    width?: number;
}
function createSquare(config: SquareConfig): { color: string; area: number } {
    // ...
}

let mySquare = createSquare({ colour: "red", width: 100 });

如果一个对象字面量存在任何“目标类型”不包含的属性时,就会出现报错。有两种方式可以绕开报错。
类型断言

let mySquare = createSquare({colour: "red", width: 100} as SquareConfig);

索引签名

interface SquareConfig {
    color?: string;
    width?: number;
    [propName: string]: any
}

表示对象可能带有任意数量的其他属性。

你可能感兴趣的:(TypeScript接口)