如何从Javascript中按名称导入打字稿生成的模块?

问题描述 投票:0回答:1

我想将一个函数从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应用程序中轻松访问它。

javascript typescript ecmascript-6 parceljs
1个回答
0
投票

这仍然是一个unsolved issue

在TypeScript支持专用编译目标之前,您只能选择使用模块捆绑器。

这些天最受欢迎的是webpackrollupparcel

© www.soinside.com 2019 - 2024. All rights reserved.