0

我想将 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'。在搞砸了一点之后,我发现我可以使用包裹生成的索引(例如,window.fooFn = require(7).fooFn)导入它,但显然这不是一个可行的解决方案,并且每次我重新启动包裹开发服务器时索引都会更改。

所以,我的问题是,如何按名称导入这个模块?

这是我tsconfig.json的参考:

{
  "compilerOptions": {
    "strict": true,
    "target": "es2015",
    "jsx": "react",
  }
}

如果你想知道我为什么要在全局命名空间上公开这个函数,这样我就可以轻松地从 WebAssembly 应用程序中访问它。

4

1 回答 1

0

这仍然是一个未解决的问题

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

现在最流行的是webpackrollupparcel

于 2018-02-07T20:34:48.253 回答