區(qū)別1
- 使用 interface 和 type 都是表示給定數(shù)據(jù)結(jié)構(gòu)的常用方法。
- 定義的方式略有不同。
- type 定義的時(shí)候有 “=” 符號(hào)
interface User {
name: string,
age: number
}
type User = {
name: string,
age: number
}
區(qū)別2
- interface 可以多次聲明同一接口。它們將合并在一起形成一個(gè)接口定義。
- type 只能聲明一次。
interface:可以多次聲明,并最終可共同復(fù)用;
interface User{
name: string
}
interface User{
age: number
}
let Person: User = {
name: 'myName',
age: 100
}
type:再次聲明會(huì)報(bào)錯(cuò)
type User = {
name: string
}
type User = { // 報(bào)錯(cuò),Throw error: Duplicate identifier
age: number
}
區(qū)別3
- 繼承方式的不同,interface通過(guò)extend方式繼承,type通過(guò) & 符號(hào)繼承;
interface
interface PointX {
x: number
}
interface Point extends PointX {
y: number
}
type
type PointX = {
x: number
}
type Point = PointX & {
y: number
}
interface 和 type 可以相互拓展
interface
type PointX = {
x: number
}
interface Point extends PointX {
y: number
}
type文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-627506.html
interface PointX {
x: number
}
type Point = PointX & {
y: number
}
注意:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-627506.html
- 如果希望定義一個(gè)變量類(lèi)型,就用 type,如果希望能夠繼承并約束,就用 interface。
- 如果您是庫(kù)的作者或?yàn)橥獠繋?kù)創(chuàng)建類(lèi)型定義,請(qǐng)使用 interface。方便其他人也可以擴(kuò)展它們。
- 如果你不知道該用哪個(gè),建議使用 type。
到了這里,關(guān)于TypeScript中 interface 和 type 的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!