我正在使用模块方法将现有代码转换为typescript,但是,有一些代码我不确定如何处理打字稿。说你有这个
featureNamespace = {
feature1: ...,
feature2: ...,
feature3: ...
};
function getFeature(feature: string) {
if (featureNamespace[feature]) {
return featureNamespace[feature];
}
throw `Feature '${feature}' has not been loaded`;
}
以前,featureNamespace
中的功能位于单独的文件中,并通过requirejs加载,并附加到全局命名空间对象。
使用模块化方法,我无法使用全局命名空间对象。我不能拥有,例如,
export module featureNamespace {
export let feature1 = ...
}
在一个文件中
export module featureNamespace {
export let feature2 = ...
}
在另一个文件中然后以某种方式导入模块featureNamespace
并使用它来检查哪些功能已附加到featureNamespace
?或者我可以吗?
答案 0 :(得分:0)
你可以!我做的很多是在小文件中放入不同的功能,然后我有一个重新导出它们的聚合文件。我认为这也适用于您的用例?
文件1:
export let feature1 = ...
文件2:
export let feature2 = ...
文件3:
export namespace featureNamespace {
export { feature1 } from "./file1";
export { feature2 } from "./file2";
}
如果您有更多问题,请告诉我,我会延长答案。