TypeScript中的interface和type区别

个人网站: 【紫陌】【笔记分享网】
想寻找共同学习交流、共同成长的伙伴, 请点击【前端学习交流群】

在 TypeScript中,type 和 interface有些相似,都可以给类型命名并通过该名字来引用表示的类型。不过它们之间使用场景有点不一样。

1.区别一

type类型使用范围更广, 接口类型只能用来声明对象

type MyNumber = number
type MyId = number | string

但是使用interface就不可以定义非对象类型(语法错误)

2.区别二

在声明对象时, interface可以多次声明

interface Person {
  name: string    
  age: number
}

interface Person {
  address: string
}

const personInfo: Person = {
  name: 'zimo',
  age: 18,
  address: '北京'
}

interface 可以重复的对某个接口来定义属性和方法; 而type定义的是别名,别名是不能重复的;

TypeScript中的interface和type区别_第1张图片

3.区别三

interface支持继承的,type不支持

interface IPerson {
  name: string
  age: number
}

interface IZimo extends IPerson {
  address: string
}

const preson: IZimo = {
  name: "zimo",
  age: 20,
  address:'北京'
}

区别4

interface可以被类实现

 class Person implements IPerson {}

总结: 如果是非对象类型的定义使用type, 如果是对象类型的声明那么使用interface

你可能感兴趣的:(Typescript,前端,typescript,javascript)