我想将一个函数从typescript生成的模块导入javascript的全局命名空间。这是我的打字稿模块foo.ts
:
export const fooFn = (): string => {
return "hello";
};
这是我的HTML文件:
<html>
<body>
<script src="foo.ts"></script>
<script type="application/javascript">
window.fooFn = require("./foo.ts").fooFn;
alert(fooFn());
</script>
</body>
</html>
这给了我错误Cannot find module './foo.ts'
。搞砸了一下之后,我发现我可以使用parcel生成的索引(例如,window.fooFn = require(7).fooFn
)导入它,但显然这不是一个可行的解决方案,并且每次重新启动parcel dev服务器时索引都会更改。
所以,我的问题是,如何通过名称导入此模块?
这是我的tsconfig.json
供参考:
{
"compilerOptions": {
"strict": true,
"target": "es2015",
"jsx": "react",
}
}
如果您想知道我为什么要在全局命名空间中公开此函数,那么我可以从WebAssembly应用程序中轻松访问它。