Я начал свой проект с CreateJS в TypeScript 1.3 около 4 месяцев назад. Проблема возникла после выпуска TypeScript 1.4 в январе. Мне, конечно, пришлось загрузить новые библиотеки DefinitlyTyped (из NuGet). Мой проект сломался - с чем я бы согласился, если не факт, что он не работает даже в новых проектах. *.d.ts
файлы не могут скомпилировать проект. Это происходит в версиях ECMAScript 5
и ECMAScript 6
.
Я обнаружил, что определение SoundJS содержит наибольшую ошибку, связанную с невозможностью загрузки проекта, и я избавился от нее. Но даже в этом случае я получаю следующие ошибки:
GameData.mapStage.canvas.width
Error 1 Property 'width' does not exist on type 'Object | HTMLCanvasElement'.
И я должен написать что-то подобное, чтобы использовать это свойство:
(<HTMLCanvasElement>(GameData.mapStage.canvas)).width
Resharper считает <HTMLCanvasElement>
избыточным, потому что canvas
всегда равно HTMLCanvasElement
, ведь это правда, но TypeScript нуждается в таком приведении.
Решение тоже easeljs.d.ts
модификации, из:
canvas: HTMLCanvasElement | Object;
to
canvas: HTMLCanvasElement;
Теперь единственный способ работать с TypeScript 1.4 и CreateJS — это не загружать пакет createjs.TypeScript.DefinitelyTyped
, а загружать отдельно пакеты определений типов easeljs
, tweenjs
и preloadjs
. Нет поддержки SoundsJS
...
Я ждал 2 месяца, надеясь, что появятся новые TypeDefinitions, но этого не произошло. CreateJS больше не поддерживает новые выпуски TypeScript?