【问题标题】:CreateJS and TypeScript 1.4CreateJS 和 TypeScript 1.4
【发布时间】:2015-05-17 23:53:11
【问题描述】:

大约 4 个月前,我在 TypeScript 1.3 中使用 CreateJS 开始了我的项目。问题出现在 1 月份 TypeScript 1.4 发布之后。我当然必须下载新的 DefinitlyTyped 库(来自 NuGet)。我的项目被破坏了——如果不是事实,我会接受,即使在新项目中它也不起作用。 *.d.ts 文件无法编译项目。它发生在ECMAScript 5ECMAScript 6 版本中。

我发现 SoundJS 定义包含无法加载项目的最多错误,我摆脱了它。但即便如此,我还是收到以下错误:

 GameData.mapStage.canvas.width

Error   1   Property 'width' does not exist on type 'Object | HTMLCanvasElement'.   

而且我必须编写类似的东西才能使用该属性:

(<HTMLCanvasElement>(GameData.mapStage.canvas)).width

Resharper 认为 &lt;HTMLCanvasElement&gt; 是多余的,因为 canvas 总是 HTMLCanvasElement 女巫是真的,但 TypeScript 需要这种转换。

解决方法也是easeljs.d.ts修改,来自:

canvas: HTMLCanvasElement | Object;

canvas: HTMLCanvasElement;

现在使用 TypeScript 1.4 和 CreateJS 的唯一方法是不下载 createjs.TypeScript.DefinitelyTyped 包,而是单独下载 easeljstweenjspreloadjs 类型定义包。 不支持SoundsJS...

我已经等了 2 个月,希望新的 TypeDefinition 会出现,但那没有发生。 CreateJS 不再支持新的 TypeScript 版本了吗?

【问题讨论】:

  • 也许@gskinner 对这个问题有所了解?

标签: typescript createjs typescript1.4


【解决方案1】:

解决方法也是easeljs.d.ts修改,来自:canvas: HTMLCanvasElement |对象;

这清楚地表明您的工具(特别是 resharper)不支持 最新版本的 TypeScript,即 1.4。解决方案是为 TypeScript 禁用 Resharper 或使用 Resharper 的 beta 版本。

换一种说法:DefinitelyTyped 定义比您的工具更新,即

CreateJS 不再支持新的 TypeScript 版本了吗?

这正是他们所支持的。最新版本。

【讨论】:

  • 那么为什么 sound.js 的绝对类型定义会破坏应用程序?
  • 在上述情况下禁用 ReSharper 没有帮助。 CreateJS 的绝对类型定义写错了。
猜你喜欢
  • 2015-05-06
  • 2015-07-09
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多