使用外部模块时如何正确使用TypeScript接口?

时间:2015-10-21 08:00:25

标签: interface typescript

我对外部模块有些新意。我想创建一个新的Updatable接口,我的许多游戏对象都将实现该接口。

使用内部模块,您可以拉入文件顶部的.ts参考,然后您就可以开始了。 Blah implements Updatable

但是,对于外部模块,我似乎无法弄清楚如何编写和访问该接口的过程。我觉得我不想导入它,因为它不是JS的东西,同时在全局范围内导出它不会使它可访问(找不到Updatable)。我在互联网上发现的另一个建议是有人使用d.ts文件作为接口,这看起来很奇怪,因为我认为它们是用于定义文件。

任何人都可以了解最佳方法吗?

经过一番挖掘后,我来到了this ticket

interface I {

}

export default I;

1 个答案:

答案 0 :(得分:2)

  

我觉得我不想导入它,因为它不是JS的东西,同时在全局范围内导出它不会使它可访问(找不到Updatable)。

继续并导入它们。 TSC不会输出带有仅用于类型检查的东西的import语句。接口将从生成的JavaScript中消失。

此代码:

import {FooClass, BarInterface, BazClass} from './baz';

class Bam extends FooClass {
    boom(baz: BazClass): BarInterface { return {}; }
}

如果你的目标是ES6,将成为下面的代码。

import { FooClass } from './baz';

class Bam extends FooClass {
    boom(baz) { return {}; }
}
  

我在互联网上发现的另一个建议是有人使用d.ts文件作为接口,这看起来很奇怪,因为我认为它们是用于定义文件。

是的,我同意。我真的建议在模块中放置与模块相关的接口,而不是分散在全局范围内。