CreateJS и TypeScript 1.4

Я начал свой проект с 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?


person Bruniasty    schedule 15.03.2015    source источник
comment
Может быть, @gskinner что-то знает об этой проблеме?   -  person Bruniasty    schedule 17.03.2015


Ответы (1)


Решение также является модификацией easyljs.d.ts, из: canvas: HTMLCanvasElement | Объект;

Это явный признак того, что ваш инструментарий (в частности, resharper) не поддерживает последнюю версию TypeScript, т. е. 1.4. Решение — отключить Resharper для TypeScript или использовать бета-версию Resharper.

Другими словами: определения DefinitelyTyped более актуальны, чем ваш инструментарий, т.е.

CreateJS больше не поддерживает новые выпуски TypeScript?

Это именно то, что они поддерживают. Последние версии.

person basarat    schedule 15.03.2015
comment
Так почему же определения Sound.js DefinitelyTyped ломают приложение? - person Bruniasty; 16.03.2015
comment
Отключение ReSharper не помогает в описанных выше случаях. Определения DefinitelyTyped для CreateJS написаны неправильно. - person Bruniasty; 16.03.2015