typescript中 type和interface的区别

105 阅读1分钟

在ts中type、interface都可以用来描述对象类型(对象、函数)。

type是类型别名,用来给类型起新名字,不仅可以用来表示基本类型,还可以表示对象类型、联合类型、元素、交集。

    type a = string
    type b = string|number
    type obj = {
        a:string,
        b:string|number
    } 
    type Fn = (a:stirng,b:string)=>void 0
    
    type S = P & {sid: string}

interface是接口,仅用于描述对象类型。

    interface Obj {
        a:string;
        b:string|number;
    } 
    interface Fn {
        (a:string,b:string|number):void
    }
    
    interface S extends P

共同点:

  • 都可用来定义对象、函数
  • 都可以实现继承;type使用&实现继承、interface使用extends实现继承

不同点

  • type可以声明基本类型、元组类型
  • interface可以声明合并(即声明重复名字合并)