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。
相关推荐
胡桃夹夹子9 分钟前
存档111111111
java·开发语言
不会编程的小寒11 分钟前
C++ 中string的用法
java·开发语言
乐悠小码29 分钟前
Java设计模式精讲---02抽象工厂模式
java·设计模式·抽象工厂模式
数据的世界0132 分钟前
技术变革:为何C#与.NET是未来的开发方向
java·c#·.net
想搞艺术的程序员38 分钟前
Go Error 全方位解析:原理、实践、扩展与封装
开发语言·后端·golang
向上的车轮38 分钟前
Actix Web适合什么类型的Web应用?可以部署 Java 或 .NET 的应用程序?
java·前端·rust·.net
脸大是真的好~1 小时前
黑马JAVAWeb-03 SpringBootWeb-分层解耦-三层架构-@SpringBootApplication注解-IOC控制反转-DI依赖注入
java
微露清风1 小时前
系统性学习C++-第十讲-stack 和 quene
java·c++·学习
闲人编程1 小时前
Python游戏开发入门:Pygame实战
开发语言·python·游戏·pygame·毕设·codecapsule
一蓑烟雨任平生√1 小时前
两种上传图片的方式——91张先生
java·ossinsight