如何编译我的 TypeScript Phaser 项目,使其仅使用 phaser.d.ts 引用路径找到 "Phaser" 命名空间?

How can I compile my TypeScript Phaser project such that it will find the "Phaser" namespace using only a phaser.d.ts reference path?

我一直在同时学习 Phaser 和 TypeScript,目前进展顺利。

我开始只是通过脚本标签让 index.html 调用 phaser.js 和 app.js,效果很好。我使用 /// <reference path="./node_modules/phaser/typescript/phaser.d.ts" /> 格式,以便我的 IDE(PhpStorm;基本上是 WebStorm)可以自动完成。这也很有效。

不幸的是,我的项目一直在增长,所以我想将所有 类 分成单独的文件。这显然说起来容易做起来难,但似乎在 2016 年最好的方法是制作我所有的文件 "external",并使用 import {MyModule} from "./src/MyModule"; 语法引用它们。

让它停止抛出 [大量] 错误的最简单方法是创建一个 tsconfig.json 文件,如下所示:

{
  "module": "commonjs",
  "target": "ES6",
  "files": [
    "app.ts"
  ]
}

所以,现在我包含了许多仅包含 export class XYZ { ... } 的本地项目文件,它们工作正常...而且由于包含 phaser.d.ts,我可以自动完成 Phaser 对象。 ..

...但是当我编译时,我遇到了很多这样的错误: Error:(40, 10) TS2503: Cannot find namespace 'Phaser'.

我变化太大了,不知道怎样才是最好的前进方式。

get tons of errors like this: Error:(40, 10) TS2503: Cannot find namespace 'Phaser'.

你的 tsconfig files 应该包含 phaser.d.ts.

或者,您可以完全删除 files,让 TypeScript 包含 包含 tsconfig.json.

的目录下的所有文件