簡體   English   中英

枚舉的打字稿類型別名

[英]Typescript type alias for enum

我的打字文件中有這個:

declare namespace Somatic {
    enum PropType {
        html,
        object,
        css
    }
}

在另一個文件 index.ts 中,我有一個較短的枚舉別名:

type PropType = Somatic.PropType;

然后我想在 switch 語句中使用別名枚舉類型:

switch (propType) {
    case PropType.html:
        break;
    .
    .
    .
    }

但是 Typescript 無法識別別名枚舉類型值。 這里有什么問題?

您應該使用import關鍵字而不是type

import PropType = Somatic.PropType;

有關導入別名聲明的更多信息,請訪問此處

** 如果您使用babel-plugin-transform-typescript,則此語法將不起作用,因為這是 typescript 唯一的導入形式。 通常不推薦使用命名空間。

在打字稿中,枚舉既是類型又是映射。 您應該分別為類型和地圖設置別名:

type PropTypeEnum = Somatic.PropType;
const PropType = Somatic.PropType;

基本上,定義文件只是聲明現有其他代碼的類型。 TypeScript 中的枚舉實際上是數字,並且您在其上構建的現有代碼很可能不使用實際數字。 更好的實現可能是只切換字符串;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM