【问题标题】:typescript enum extend undefined value打字稿枚举扩展未定义的值
【发布时间】: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


【解决方案1】:

你导入错了:

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

应该是:

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

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    相关资源
    最近更新 更多