2017-08-06 125 views
0

我试图扩展打字稿中的现有枚举。这看起来像打字时工作,但扩展枚举成员的值是未定义的。typescript枚举扩展未定义值

我使用Node.js的8.0.0与2.4.2 TSC

--- 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

你在哪里导入'enumextend.ts'? – zerkms

+0

更新:我试图调用:导入'../models/category/enumextend'在使用中,但仍然相同的结果。 –

+0

'import'../ models/category/enumextend';'---这个导入应该做什么?你运行它,但不要使用任何导出的标识符。 – zerkms

回答

0

进口是错误的:

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

应该是:

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