【问题标题】:using import breaks extending internal modules使用导入中断扩展内部模块
【发布时间】:2013-04-09 18:48:48
【问题描述】:

这是我的场景。我正在跨多个文件定义一个“我的”模块。我使用引用路径包含来包含文件。但是,当我在其中一个文件中使用 import 时,内部模块中的名称不再解析。我需要明确引用模块名称..

a.ts:

module mine {
    export class A {
    }
}

e.ts:(我不拥有这个,通常从网络下载)

declare module "ext" {
    export var xyz;
};

b.ts:

/// <reference path="a.ts" />
/// <reference path="e.ts" />
import ext = module("ext");
module mine {
    export class B extends A {
    }
}

当我使用 'tsc --target ES5 b.ts' 编译 b.ts 时,我收到以下错误。

E:/Prem/src/redsnake/try/b.ts(5,27): Expected type
E:/Prem/src/redsnake/try/b.ts(5,27): Base type must be interface or class

但是,如果我删除 b.ts 中的 import 语句,一切正常。我的问题是,如何在导入另一个外部模块的同时扩展一个内部模块。

我添加了 e.ts 作为解释,但从技术上讲,e.ts 可以来自我通过 tsd 获得的外部 typescript 定义文件或从 web 下载。我特别关注的问题是 node.js 断言模块。

【问题讨论】:

    标签: typescript


    【解决方案1】:

    这是 TypeScript 编译器中的一个错误——您的代码(或至少应该)没问题。该问题刚刚在 0.9 分支中得到解决。

    【讨论】:

      猜你喜欢
      • 2019-11-01
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      相关资源
      最近更新 更多