2017-12-13 16 views
1

私はいくつかの場所で使用したい列挙型を持っています。 さんはこのように列挙してみましょう:TypeScript:enum名を指定せずにenum要素を使用

export enum MyEnum { 
    MY_VALUE, 
    MY_SECOND_VALUE 
} 

私はそれを使用するたびに、私は、値の前に例えば列挙型の名前を指定する必要があります。

MyEnum.MY_VALUE 

Q:はそれがインポートすることは可能です名前を指定する必要はありません。

私が直接値を使用したい:それは静的インポートと呼ばれるJavaの世界で

MY_VALUE 

。しかし、私はそのTypeScriptのようなanithingは見つかりませんでした。

My TypeScriptのバージョンは2.5.3です。

答えて

2

Typescriptの静的インポートの構文はありません。

あなたは定数に値メンバーを割り当てて、それを使用することができます

const MY_VALUE = MyEnum.MY_VALUE; 

、エクスポートモジュール内の定数として列挙値を定義する場合は、あなたが簡単にあなたがそれらを使用する必要がどこか他の値をインポートすることができます:

// enumModule .ts 
export enum MyEnum { 
    MY_VALUE, 
    MY_SECOND_VALUE 
} 

export const MY_VALUE = MyEnum.MY_VALUE; 
export const MY_SECOND_VALUE = MyEnum.MY_SECOND_VALUE; 

// Other file.ts 
import { MY_SECOND_VALUE, MY_VALUE } from './enumModule' 
+0

ありがとうございます。できます。 TypeScriptの世界でこれらのようなものを実装するのは良い習慣ですか?正直言って、それは少し醜いように見えます。私がこれらの定数を宣言すれば、enumを持つ点は何ですか?文字列定数を宣言したばかりです。 –

+0

私が知っている限り、それは悪い習慣ではありませんが、私はそれが普段使われているのを見ていません。 TS/JSにおける輸入作業の利点は、輸入者が輸入品について明示しているので、これから望ましくない紛争が生じることはありません。 Enumを使用する利点は、すべての定数型を指定する代わりに、関数入力を列挙型に制限できることです。 'function c(p:MyEnum){}' vs 'function c2(p:typeof MY_VALUE | typeof MY_SECOND_VALUE) {} ' –

関連する問題