2016-12-16 1 views
1

내 TypeScript 열거 형을 전역으로 만들어 응용 프로그램간에 가져올 필요가 없습니다.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;을 통해 enum을 참조하십시오.

향후 열거 형 정의를 별도의 파일로 유지하면서 모듈을 가져 오지 않고이 형식 정의를 참조하려면 어떻게해야합니까?

업데이트 : 또한 함수의 반환 형식을 ReadState 열거 형으로 설정해야합니다. 나는이 가지고있는 현재 선택한 답변에 따라

: 다른 파일에서

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

const enums = { 
    ReadState: ReadState 
} 

declare global { 
    const Enums: typeof enums; 
} 

을 나는 이러한 기능에 대한 반환 유형을 설정하고 싶지만 타이프 라이터가 불행하십시오 declare global

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

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

답변

3

사용 블록 :

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

완벽! Ryan에게 감사드립니다. – kenhowardpdx

+0

내 질문에 더 많이 추가했습니다. 함수 반환 형식에 문제가 있습니다. – kenhowardpdx

관련 문제