提问人:Cflowe Visit 提问时间:7/4/2022 更新时间:7/4/2022 访问量:56
没有模块时如何在命名空间中包含函数?
How to include functions in namespace when don't have module?
问:
没有模块时如何在命名空间/模块中包含函数?
示例:我有一个命名空间:
namespace Java {}
在 TypeScript 中,通常当我们需要命名空间或模块中的函数时,我们会添加 'export':
namespace Java {
export function version() {
return "java8";
}
}
namespace JavaScript {
function JavaVer() {
return Java.version();
}
}
但是如果我将模块设置为无:
// tsconfig
"module": "none",
如果模块为 none,则无法使用 import / export:
website/sourcecode/main.ts:17:21 - error TS1148: Cannot use imports, exports, or module augmentations when '--module' is 'none'.
17 导出函数 version() {}
那我能做些什么呢?
答:
0赞
jsejcksn
7/4/2022
#1
您可以使用普通对象:
const Java = {
version () {
return "java8";
},
};
const JavaScript = {
JavaVer () {
return Java.version();
},
};
const vJ = Java.version(); // string
const vJS = JavaScript.JavaVer(); // string
console.log(vJ === vJS); // true
0赞
Tommy Nguyen
7/4/2022
#2
在这里得到的回答是:它实际上是“不能在顶级进行任何进出口”。在命名空间内导入和导出是可以的,因为它们在运行时不会从.ts文件中导出任何内容,只要文件仍然是“不是模块”,module=None 就可以正常工作。 这里有很长的解释
评论
{ "module": "none" }