2016-12-16 11 views
1

TypeScript Enumをグローバルにしたいので、アプリケーション全体にインポートする必要はありません。Node.jsにグローバルTypeScript Enumを登録する方法

私がこれまで持っている:

読み取りstate.enum.ts

export enum ReadState { 
    Unread = 4000, 
    Read = 4001 
} 

enums.ts index.tsで次に

import { ReadState } from './read-state.enum'; 

const enums = { 
    ReadState 
} 

global['Enums'] = enums; 

declare var Enums: typeof enums; 

import './enums'; // do this once to initialize enums 

var _enums = Enums; // [ts] Cannot find name 'Enums'. 

実行時にこれはうまくいくかもしれませんが、私はablではありませんeファイルがモジュールであるため、declare var Enums: typeof enums;で列挙型を参照します。

将来の列挙型定義を別々のファイルに保存しながらモジュールをインポートせずにこの型定義を参照するにはどうすればよいですか?

更新:関数の戻り値の型をReadState列挙型に設定する必要もあります。私はこれを持って、現在の選択回答に基づいて

:別のファイルで

import { ReadState } from './read-state.enum'; 

const enums = { 
    ReadState: ReadState 
} 

declare global { 
    const Enums: typeof enums; 
} 

私は、これらの関数に戻り値の型を設定したいと思いますが、活字体は不幸です:

function getState1(): Enums.ReadState { 
    return Enums.ReadState.Unread; 
} 

function getState2(): typeof Enums.ReadState { 
    return Enums.ReadState.Read; 
} 

答えて

3

declare globalを使用しますブロック:

declare global { 
    const Enums: typeof enums; 
} 
+0

パーフェクト!ライアンに感謝します。 – kenhowardpdx

+0

私は私の質問にもっと多くを加えました。関数の戻り値の型に問題があります。 – kenhowardpdx

関連する問題