TypeScript interface和type的区别

interface和type都可以用作ts中限制变量的类型,它们有一些共同点

  1. 都能作为限制变量类型的方式
  2. 都能被class实现

但也有所区别

  1. interface可以实现声明合并,type不行
interface A {
    a: string
}

interface A{
    b:string 
}

const o : A = {
    a:'1',
    b:'2'
}
  1. type可以使用联合类型或者交叉类型,interface不行
type A = {
    a: number,
    b: number
}
type B = {
    a: number
}

// 交叉类型, 需要满足A和B的并集
const D: A & B = {
    a: 1,
    b: 2
}

// 联合类型,需要满足A和B的交集
const E: A | B = {
    a: 1
}
  1. interface只能用于描述对象类型或者函数,而type可以描述任意类型
interface FN {
    // 形参:返回值
    (a: number): string
}

const fn: FN = (a) => '' + a
posted @ 2022-06-21 11:12  IslandZzzz  阅读(228)  评论(0编辑  收藏  举报