2017-08-06 3 views
0

Ich versuche, eine vorhandene Enum in Typoskript zu erweitern. Es sieht so aus, als würde es beim Tippen funktionieren, aber der Wert für das erweiterte Enum-Element ist nicht definiert.typescript enum erweitern undefinierten Wert

I node.js 8.0.0 mit tsc bin mit 2.4.2

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

--- --- Nutzung

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 

--- erwartete Konsolausgabe ----

friendGroup 
testGroup 
classGroup 

--- Realität Konsolausgabe ---

friendGroup 
undefined 
undefined 

Was könnte falsch sein bitte?

+0

Wo importieren Sie 'enumextend.ts'? – zerkms

+0

Aktualisiert: Ich habe versucht zu rufen: Import '../models/category/enumextend' in der Nutzung, aber immer noch das gleiche Ergebnis. –

+0

'import '../ models/category/enumerdetend';' --- was soll dieser Import tun? Sie führen es aus, verwenden jedoch keine exportierten Bezeichner. – zerkms

Antwort

0

Sie importieren, ist falsch:

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

werden sollten:

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