TypeScript(3接口和对象类型)

90 阅读1分钟

对象的类型的描述

两个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
}