在打字稿文件中使用JavaScript库

时间:2016-07-12 13:58:50

标签: javascript typescript phaser-framework

我正在尝试在我的TypeScript文件中使用Phaser Input JS library

我将所有文件下载到我的项目中:

folder

我在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;

有关如何使其发挥作用的任何建议都表示赞赏。

2 个答案:

答案 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);
}