Может ли TypeScript взаимодействовать с jQuery без файла определения?
Я пытаюсь узнать этот новый материал TypeScript, и мне немного любопытно.
Может ли он работать с существующими фреймворками javascript, такими как jQuery без, необходимость в файле определения со всеми этими интерфейсами? Я пытаюсь проверить это вручную, но до сих пор я немного не уверен, насколько расширяется функциональность.
Обновление
by "work" Я имею в виду простую функциональность, а не функции IDE, такие как автозаполнение.
Ответы
Ответ 1
Простой ответ да.
TypeScript способен полностью взаимодействовать с любой существующей библиотекой Javascript. Вам нужен только файл определения, если вы хотите, чтобы инструменты в среде IDE упрощали его использование.
Кроме того, если вы не включаете файл определения, компилятор TypeScript может рассердиться на вас за использование переменной, которая не была определена в вашем коде (например, $
). Чтобы обойти это, вам, возможно, придется сделать что-то вроде
declare var $;
Тем не менее, я не уверен, почему вы не захотите использовать файл определения jQuery. Разумеется, гораздо удобнее писать jQuery с помощью.
Ответ 2
Да, вы можете. Например, просто напишите:
declare var $;
и вы можете в основном использовать структуру JQuery без необходимости определять что-либо еще. Это также очень удобно при преобразовании существующих библиотек/кода переноса.
Ответ 3
Typescript позволяет объявлять переменные в выделенной области видимости с помощью синтаксиса declare variable
или declare function
(см. раздел 1.1 на стр. 9 в спецификации языка). Однако использование эмбиентных объявлений может быть только краткосрочным решением, так как вы эффективно потеряете всю статическую проверку Typescript и, следовательно, одно из самых важных преимуществ Typescript над Javascript.