集合

typeScript

interface和type的區(qū)別
interface 和 type 很相似,很多時(shí)候,用兩種方式都能實(shí)現(xiàn)。

  1. 類型別名可以用于其它類型 (聯(lián)合類型、元組類型、基本類型(原始值)),interface不支持
type PartialPointX = { x: number };
type PartialPointY = { y: number };

// union(聯(lián)合)
type PartialPoint = PartialPointX | PartialPointY;

// tuple(元祖)
type Data = [PartialPointX, PartialPointY];

//primitive(原始值)
type Name = Number;

// typeof的返回值
let div = document.createElement('div');
type B = typeof div;

  1. interface 可以多次定義 并被視為合并所有聲明成員。type 不支持
interface Point {
  x: number;
}
interface Point {
  y: number;
}

const point: Point = { x: 1, y: 2 };

  1. type 能使用 in 關(guān)鍵字生成映射類型,但 interface 不行。
type Keys = 'firstname' | 'surname';

type DudeType = {
  [key in Keys]: string;
};

const test: DudeType = {
  firstname: 'Pawel',
  surname: 'Grzybek',
};

  1. 默認(rèn)導(dǎo)出方式不同
// inerface 支持同時(shí)聲明,默認(rèn)導(dǎo)出 而type必須先聲明后導(dǎo)出
export default interface Config {
  name: string;
}
// 同一個(gè)js模塊只能存在一個(gè)默認(rèn)導(dǎo)出哦
 type Config2 = {name: string}
  export default Config2
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容