【发布时间】:2019-07-10 07:58:50
【问题描述】:
所以我对 typescript、javascript 和 web-shizzles 很陌生(我通常构建原生应用程序)。但是我正在尝试使用 Phaser3 并使用带有 typescript 的 VSCode 来转换 javascript 文件。首先我使用了命名空间(C# 背景),但显然这不是 typescript 的方式,所以我删除了命名空间并使用 export 和相应的 import 语句。
问题:我花了一段时间才发现我的窗口事件 (window.onload) 由于导入了所需的类型而没有触发。此事件是应用程序的入口点。欢迎提出其他启动项目的方法的建议。代码如下:
window.onload 不会触发:
import { Boot } from "./Boot";
window.onload = () => {
console.log("Test");
Boot.runApp();
}
删除“导入”后,window.onload 触发!
//import { Boot } from "./Boot";
window.onload = () => {
console.log("Test");
//Boot.runApp();
}
Boot.ts
imports...
export class Boot {
static runApp() {
console.log("RUN APP!!");
//Start the game... (code removed)
}
}
这是我的 tsconfig:
{
"compileOnSave": true,
"compilerOptions": {
"target": "ES5",
"module": "system",
"sourceMap": false,
"outDir": "bin/js/",
"outFile": "bin/js/game.js"
},
"include": [
"./src/**/*"
],
"files":[
"./tsDefinitions/nineslice.d.ts",
"./tsDefinitions/phaser.d.ts"
]
}
任何想法为什么它会这样? 这有点烦人,因为那个地方会启动我的游戏代码。是否可以从我的 index.html 中的标签启动我的“Boot.runApp()”功能?
【问题讨论】:
-
什么是
Boot,它有什么作用?您实际上是如何运行此代码的?基本上我们需要一个Minimal, Reproducible Example
标签: javascript typescript visual-studio-code window-load