TypeScript中 interface 和 type 的区别

区别1

  • 使用 interface 和 type 都是表示给定数据结构的常用方法。
  • 定义的方式略有不同。
  • type 定义的时候有 "=" 符号
typescript 复制代码
interface User {
	name: string,
	age: number
}
type User = {
	name: string,
	age: number
}

区别2

  • interface 可以多次声明同一接口。它们将合并在一起形成一个接口定义。
  • type 只能声明一次。

interface:可以多次声明,并最终可共同复用;

typescript 复制代码
interface User{
	name: string
}
interface User{
	age: number
}
let Person: User = {
	name: 'myName',
	age: 100
}

type:再次声明会报错

typescript 复制代码
type User = {
	name: string
}
type User = {  // 报错,Throw error: Duplicate identifier
	age: number
}

注意:

  1. 如果希望定义一个变量类型,就用 type,如果希望能够继承并约束,就用 interface。
  2. 如果您是库的作者或为外部库创建类型定义,请使用 interface。方便其他人也可以扩展它们。
  3. 如果你不知道该用哪个,建议使用 type。
相关推荐
日月星辰Ace26 分钟前
jwk-set-uri
java·后端
Tomorrow'sThinker36 分钟前
Python零基础学习第三天:函数与数据结构
开发语言·windows·python
元媛媛39 分钟前
Python - 轻量级后端框架 Flask
开发语言·python·flask
xiao--xin43 分钟前
LeetCode100之二叉搜索树中第K小的元素(230)--Java
java·算法·leetcode·二叉树·树的统一迭代法
钢板兽1 小时前
Java后端高频面经——Spring、SpringBoot、MyBatis
java·开发语言·spring boot·spring·面试·mybatis
钢板兽1 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试
爱吃柠檬呀1 小时前
《C陷阱与缺陷》读书笔记(一)
c语言·开发语言·算法·《c陷阱与缺陷》·编写程序
行码棋1 小时前
【Python】omegaconf 用法详解
开发语言·python
awonw1 小时前
[java][基础] 悲观锁 vs 乐观锁
java·开发语言
嘵奇1 小时前
10个实用IntelliJ IDEA插件
java·ide·intellij-idea