Module 如何在TypeScript中仅导入模块的一部分?

Module 如何在TypeScript中仅导入模块的一部分?,module,typescript,Module,Typescript,假设我有一个翻译模块,我只想导入法语翻译文件。我想这样做: import french = module("./translations").french; 与CommonJS中的require类似 是否可以在TypeScript中执行类似的操作,或者我必须导入整个模块并执行类似的操作 import translations = module("./translations"); var french = translations.french; 如果你只需要模块的一部分,听起来你的模块设计

假设我有一个翻译模块,我只想导入法语翻译文件。我想这样做:

import french = module("./translations").french;
与CommonJS中的
require
类似

是否可以在TypeScript中执行类似的操作,或者我必须导入整个模块并执行类似的操作

import translations = module("./translations");
var french = translations.french;

如果你只需要模块的一部分,听起来你的模块设计可能是错误的——也就是说,你应该有一个代表你需要的模块,并将你不需要的东西移到另一个模块中


例如,每种语言都有一个模块。

在某些情况下,这实际上是相当合理的。不幸的是,TypeScript目前不支持这一点;导入声明的语法不允许对其进行打点(参见规范第9.2.2节)。这是我们可以期待在未来改进的东西。我建议在网站上提交问题。

我同意。问题中给出的语言示例可以很好地使用分层模块结构进行设计,以使不同的语言对应于子模块。这并不能真正解决问题:通常您无法自由编辑所使用的模块。@Roly在这种情况下,我可能会尝试在模块上编写适配器,或者编写一种语言工厂。