TypeScript接口与类型别名之间区别

首页 / 其他 / 正文

接口是一系列抽象方法的生命,是一些方法特征的集合。

接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约

接口只能用在对象类型当中,具备接口合并,接口继承, 不具备映射类型而类型别名支持

  • 区别1

    type A = string; // 使用type支持
    let a:A = 'hello'
    // 然后接口只支持对象类型
    interface B = {
      
    }
  • 区别二

    // 接口能合并,但是类型别名不可以
    interface A {
      username: string
    }
    interface B {
      age: number
    }
    let a: A {
      username: 'yiqi', // 这个是必须的
      age: 20 // 这个是必须的
    }
  • 区别三

    // 接口具备继承的能力
    interface A {
      username: string
    }
    interface B extends A {
      
    }
    let b: B = {
      username: 'yiqi'
    }
  • 区别四

    // 类型别名支持映射类型,接口不行
    
    type A = {
      [P in 'username'|'age']: string
    }
打赏
评论区
头像