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。
相关推荐
love_muming3 分钟前
Java编程核心技巧全解析
java·开发语言·idea
爱编程的小新☆3 分钟前
Spring-AI入门
java·后端·spring
wjm0410068 分钟前
简单谈谈ios开发中的UI
开发语言·ios·swift
用户298698530149 分钟前
Java 获取 Word 文档中修订记录的实现方法
java·后端
Dicky-_-zhang10 分钟前
Redis集群模式详解与实战配置
java·jvm
你的保护色10 分钟前
ensp之STP、RSTP、MSTP协议实验
java·服务器·数据库
slandarer13 分钟前
MATLAB | 土地利用变化桑基图及状态转移桑基图绘制
开发语言·数学建模·matlab·桑基图
L_090722 分钟前
【C++】面向对象三大特性之多态
开发语言·c++
阿正的梦工坊23 分钟前
【Typescript】03-函数对象与接口
前端·javascript·typescript
JAVA学习通24 分钟前
《大营销平台系统设计实现》 - 营销服务 第5节:抽奖前置规则过滤
java·数据库·github