对象的类型的描述
两个interface(接口)同名会合并
interface A {
name: string
}
interface A {
age: number
}
let obj: A = {
name: 'Durant',
age: 323
}
可选操作符 ?.
interface Person {
name: string,
age?: number
}
let obj: Person = {
name: 'Durant'
}
内置对象任意属性[propName: string] 可以接受不知道对象的任意属性[propName: string]的属性可以是any也可以是|联合类型。 readonly 表示只读不能再进行赋值。
interface Person {
readonly name: string,
age?: number,
[propName: string]: string | number | boolean
}
let obj: Person = {
name: 'Durant',
size: 323,
home: '承德市'
}
接口描述对象的方法
interface People {
cb(): number
}
const obj: People = {
cb: () => 123
}
不同名interface组合使用,需满足两个接口的规则
interface A {
name: string
}
interface B extends A {
age: number
}
const obj: B = {
name: 'Durant',
age: 21
}