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。
相关推荐
空青72623 分钟前
ChatGPT在Java后端开发中的应用与影响
java·开发语言·人工智能·后端·神经网络·机器学习·chatgpt
莫得等待24 分钟前
MySQL的慢sql
java
威哥爱编程36 分钟前
Nginx性能调优5招35式不可不知的策略实战
java·nginx·性能调优
搁浅小泽36 分钟前
C 语言总复习
c语言·开发语言
五月阳光暖洋洋1 小时前
SpringBoot2.2.6使用spring-boot-validation读取不到自定义配置文件中的属性
java·开发语言·spring boot
刘钢筋universe1 小时前
leetcode hot100
java·算法·leetcode
java6666688881 小时前
深入理解Spring Boot中的容器与依赖注入
java·spring boot·后端
u0104058361 小时前
Spring Boot中的依赖注入和控制反转
java·spring boot·后端
猫猫爱吃小鱼粮1 小时前
57、Flink 的项目配置概述
java·flink
龙洋静1 小时前
RabbitMq - Java客户端基础【简单案例 +Work模型】
java·rabbitmq·java-rabbitmq