繁体   English   中英

如何将typescript项目与html集成

[英]How to integrate typescript project with html

我想从HTML正文中调用一个打字稿函数。 但是,我无法从HTML调用我的函数(D2O_main()),因为我不完全理解生成的js代码。 任何帮助是极大的赞赏。

我使用以下命令生成了js:tsc --module umd main.ts

这是html文件。

<head>
    <script type="text/javascript" src="main.js"></script>
</head>
<body onload="D2O_main();">
    <canvas id="canvas-001"></canvas>
</body>
</html>

这是main.ts文件:

import {Init} from "./Core/IO/Init"
let init:Init;
function D2O_main() {
    init = new Init("canvas-001");
}

这是生成的main.js文件:

(function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        var v = factory(require, exports);
        if (v !== undefined) module.exports = v;
    }
    else if (typeof define === "function" && define.amd) {
        define(["require", "exports", "./Core/IO/Init"], factory);
    }
})(function (require, exports) {
    "use strict";
    exports.__esModule = true;
    var Init_1 = require("./Core/IO/Init");
    var init;
    function D2O_main() {
        init = new Init_1.Init("canvas-001");
    }
});

我在浏览器控制台上收到以下错误:

未捕获的ReferenceError:在onload上未定义D2O_main

再一次,非常感谢任何帮助。

这是因为嵌套函数是函数作用域的 - 你需要将function D20_main移动到它所包含的function D20_main之外,从而有效地使它成为一个全局可访问的函数:

(function (factory) {...})(function (require, exports) {...}); 
function D20_main() {...}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM