【发布时间】:2017-08-06 04:36:09
【问题描述】:
我正在尝试扩展 typescript 中的现有枚举。打字时看起来像工作,但扩展枚举成员的值未定义。
我正在使用 node.js 8.0.0 和 tsc 2.4.2
--- ecategorytype.ts ---
export enum eCategoryType {
generic = 'generic',
resources = 'resources',
friendGroup = 'friendGroup'
}
--- 枚举扩展.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);
--- 枚举扩展.d.ts ---
declare module './ecategorytype' {
enum eCategoryType {
classGroup = "classGroup",
testGroup = "testGroup",
}
}
export {};
--- 枚举扩展.js ---
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=typeext.js.map
--- 预期的控制台输出 ----
friendGroup
testGroup
classGroup
---现实控制台输出---
friendGroup
undefined
undefined
请问有什么问题吗?
【问题讨论】:
-
你在哪里导入
enumextend.ts? -
已更新:我尝试调用:import '../models/category/enumextend' in usage 但结果仍然相同。
-
import '../models/category/enumextend';--- 这个导入应该做什么?您运行它但不使用任何导出的标识符。 -
错误 TS2305:模块 '"src/models/category/enumextend"' 没有导出的成员 'eCategoryType'。如果我调用 import {eCategoryType} from '../models/category/enumextend';
标签: typescript