interface 和 type的分别用法

71 阅读1分钟

在ts的定义中,interface是这样定义: TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。

interface Person {
    name: string;
    age: number;
    loves?: string[]// ?表示可选属性
}
// 使用
let person: Person = { name:'张三',age:12,loves:['打篮球']} // 其中loves可写可不写


  • interface:对象结构、类实现、需要声明合并时。
  • type:复杂类型、联合/交叉类型、工具类型时。
// type用来定义类型可以定义复杂的类型等,比如既可以是字符串也可以是数字类型
type Sex = '男' | '女'

type Sex2 = string | number;

let sex:Sex = '男'

let sex2:Sex2 = '张三'

// type比如还可以是多个复杂类型的联合,比如可以把interface多个类型结合起来
interface Person2{
    address: string
    loves: string[]
    jog: string
}

type Person3 = Person & Person2

let person3: Person3 = {
    name: '张三',
    age: 18,
    sex: '男',
    address: '北京',
    loves: ['篮球', '足球'],
    jog: '跑步'
}