在Typescript中扩展一个简短的环境模块导入

时间:2016-12-16 00:41:58

标签: typescript

我正在寻找一种从声明中扩展导入的简洁方法。

我尝试了以下操作,但收到了错误:error TS2507: Type 'any' is not a constructor function type.示例代码如下:

base.d.ts

declare module 'base';

derived.ts

import * as Base from 'base';

class Derived extends Base { // error TS2507: Type 'any' is not a constructor function type.
}

1 个答案:

答案 0 :(得分:1)

速记环境模块仅适用于值,不适用于类型。

这也不能编译,我不认为这是一个惊喜:

import * as Base from 'base';

interface X {
    foo: Base.Foo;//error TS2694: Namespace ''base'' has no exported member 'Foo'
}


function f(s: string) {}

f(Base.Foo);  // note: no error here, for the same Base.Foo

引入速记模块作为一种方式来表示内部的所有内容都有any类型"。对于类和类型,没有any的模拟 - 您无法在没有完整声明的情况下扩展类。