2017-08-06 10 views
0

私はtypescriptの既存の列挙型を拡張しようとしています。入力時には動作するようですが、拡張enumメンバの値は未定義です。typescript enum拡張されていない値

私はTSC 2.4.2

とのNode.js 8.0.0 --- --- ecategorytype.ts

export enum eCategoryType { 
    generic = 'generic', 

    resources = 'resources', 
    friendGroup = 'friendGroup' 
} 

--- --- enumextend.tsを使用しています

import eCategoryType from './ecategorytype'; 

declare module './ecategorytype' { 
    export enum eCategoryType { 
     classGroup = 'classGroup', 
     testGroup = 'testGroup' 
    } 
} 

---使い方---

import eCategoryType from '../models/category/ecategorytype'; 
import '../models/category/enumextend'; 
console.log(eCategoryType.friendGroup); 
console.log(eCategoryType.classGroup); 
console.log(eCategoryType.testGroup); 

--- --- enumextend.d.ts

declare module './ecategorytype' { 
    enum eCategoryType { 
     classGroup = "classGroup", 
     testGroup = "testGroup", 
    } 
} 
export {}; 

--- --- enumextend.js

"use strict"; 
Object.defineProperty(exports, "__esModule", { value: true }); 
//# sourceMappingURL=typeext.js.map 

---予想されるコンソール出力----

friendGroup 
testGroup 
classGroup 

---現実のコンソール出力---

friendGroup 
undefined 
undefined 

どうすればいいですか?インポート

+0

? – zerkms

+0

Updated:私は:import '../models/category/enumextend'を使用しても同じ結果を呼び出そうとしました。 –

+0

'import '../ models/category/enumextend';' ---このインポートは何をする予定ですか?それを実行しますが、エクスポートされた識別子は使用しないでください。 – zerkms

答えて

0

は間違っている:

import eCategoryType from '../models/category/ecategorytype'; 

する必要があります:あなたは `enumextend.ts`をインポートん

import {eCategoryType} from '../models/category/ecategorytype'; 
関連する問題