我正在尝试在我的TypeScript文件中使用Phaser Input JS library。
我将所有文件下载到我的项目中:
我在HTML页面中引用了js文件,
<script type="text/javascript" src="phaser-input.js"></script>
并在我的app.ts文件中。
/// <reference path="phaser-input.d.ts" />
但是当我尝试在我的ts文件中使用它时,我写了
var input = game.add.inputField(10, 90);
我收到错误
Property&#39; inputField&#39;不会退出类型&#39; GameObjectFactory&#39;
有关如何使其发挥作用的任何建议都表示赞赏。
答案 0 :(得分:1)
您需要做的是Declaration Merging.
phaser-input.d.ts
拥有自己的命名空间Fabrique
,并且似乎无法合并到Phaser
命名空间或GameObjectFactory
类。因此,您需要手动创建另一个d.ts文件并在app.ts
//index.d.ts
/// <reference path="phaser.d.ts" />
/// <reference path="phaser-input.d.ts" />
declare module Phaser {
interface GameObjectFactory {
inputField(x: number, y: number, inputOptions?: Fabrique.InputOptions): Fabrique.InputField
}
}
//app.ts
///<reference path="index.d.ts" />
var input = game.add.inputField(10, 90);
答案 1 :(得分:0)
尝试使用以下语法:
//phaser-input.d.ts
declare module "lib/phaser-input" {
var input = game.add.inputField(10, 90);
}