难以确定如何在打字稿中使用外部模块

时间:2016-05-11 23:15:29

标签: typescript

我有一个我用打字稿写的应用程序,以及我想在另一个应用程序中使用的一些部分。我立即想到的是将这些部分打包在一个外部模块中。

我很难搞清楚如何正确行事;问题似乎是,如果我打包类和接口,我无法让另一个打字稿应用程序识别它们,除非我将接口分成他们自己的*.d.ts文件并用命名空间来限定它们,像这样...

identity.d.ts

declare namespace mod {
   export interface IIdentity { /* ... */ }
   export class Identity implements IIdentity {}
}

然后执行...

identity.ts

import 'mod';

如果我这样做,它可以正常工作,但它引入了一些问题 - 主要是因为这个完全设计在打字稿文档中被说成是坏的。但是如果我不像这样对它们进行范围化,那么将这些接口和类放到另一个项目中的唯一方法就是将它们复制并使它们成为整个程序文件层次结构的一部分,或者做过多而钝的文件路径(例如import '../../../../../../../../../{file}')我真的想让它们更便携。

还有什么我可以做的吗?将它们包装到外部模块中的正确方法是什么,而不必在两个地方定义所有内容,仍然可以使它们可调用?

基本上我真的不想要这个; enter image description here

1 个答案:

答案 0 :(得分:0)

  

但是如果我不像这样对它们进行范围化,那么将这些接口和类放到另一个项目中的唯一方法就是将它们复制并使它们成为整个程序文件层次结构的一部分,或者做过多而钝的文件路径(例如导入'../../../../../../../../../ {file}')我真的想让它们更便携。

该模块应为node_module。此处涵盖:http://www.typescriptlang.org/docs/handbook/typings-for-npm-packages.html和此处:https://basarat.gitbooks.io/typescript/content/docs/quick/nodejs.html