“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情”
前言
学会了typeScript之后疑惑了很久,定义一个接口都可以使用type和interface,那么这两者到底有什么不同呢?在编写代码的时候到底应该怎么使用呢?。下面我将深入剖析这两者的不同与相同,希望对大家有所帮助同时欢迎讨论指出问题!
1.首先来定义一个接口
当一个对象类型被多次使用时,一般会使用接口来描述对象的类型,达到复用
1.用interface 关键字声明接口
interface Iperson {
name: string
age: number
}
let person: Iperson = {
name: 'ZZ',
age: 18
}
2.用type 关键字声明接口
type Iperson = {
name: string
age: number
}
let person: Iperson = {
name: 'ZZ',
age: 18
}
2.相同点
1.type 与interface 都可以用来描述一个对象或者函数
type Iperson = {
name: string
age: number
}
interface Iperson {
name: string
age: number
}
2.interface与type都可以拓展,并且两者并不不是相互独⽴立的。interface 可以 extends type, type 也可以 extends interface。但是两者的语法有点不同
interface Name {
name: string;
}
interface User extends Name {
age: number;
}
type Name = {
name: string;
}
type User = Name & { age: number };
3.不同点
1.type 可以声明基本类型,联合类型,元祖等。type语句中还可以使用typeof获取实例的类型进行赋值
type Name = string // 基础类型
type Name = string | number //联合类型
type Arr =[string,number] //元祖
2.interface 可以声明合并,但type不可以
interface User={
name:string;
age:number
}
interface User={
like:string
}
最后 User这个接口的结果是
interface User={
name:string;
age:number;
like:string
}
最后总结:当遇到不知道用type还是interface的情况下,能用interface实现就用interface实现,不行了再用type。
结束语
希望大家能够喜欢我的文章,我真的很用心在写,也希望通过文章认识更多志同道合的朋友。
最后伙伴们,如果喜欢我的可以给点一个小小的赞👍或者关注➕都是对我最大的支持。