ES6导入隐藏TypeScript定义文件

时间:2016-09-25 01:57:09

标签: typescript visual-studio-2015 typescript1.8 typescript-typings

我有2个定义文件:foo.d.ts和bar.d.ts

// foo.d.ts
interface IBaseInterface {
    // stuff
}

// bar.d.ts 
interface IDerivedInterface extends IBaseInterface {
    // more stuff
}

这很好用。我将一个ES6导入添加到foo.d.ts的那一刻,我的整个应用程序不再能够“看到”它的内容。

例如,将foo.d.ts修改为以下内容:

// foo.d.ts
import { SomeClass } from 'my-module';

interface IBaseInterface {
    baz: SomeClass;
}

以下是bar.d.ts:

// bar.d.ts
// ERROR: Cannot find name IBaseInterface
interface IDerivedInterface extends IBaseInterface { 

}

我错过了什么?

1 个答案:

答案 0 :(得分:3)

在文件中添加import使其成为一个模块,这意味着当前文件中定义的内容对全局范围内的内容不可见。

要解决此问题,请导出IBaseInterface并将其从您定义的文件IDerivedInterface中导入。例如,您可以编写

// foo.d.ts
import { SomeClass } from 'my-module';

export interface IBaseInterface {
    baz: SomeClass;
}

// bar.d.ts
import { IBaseInterface } from './foo';

interface IDerivedInterface extends IBaseInterface { 

}