Ключевое слово declare
используется для объявления переменных, источником которых может служить некий файл, не являющийся TypeScript-файлом.
Например, представим, что у нас имеется библиотека, которая называется myLibrary
. У неё нет файла с объявлениями типов TypeScript, у неё имеется лишь пространство имён myLibrary
в глобальном пространстве имён. Если вы хотите использовать эту библиотеку в своём TS-коде, вы можете использовать следующую конструкцию:
declare var myLibrary;
TypeScript назначит переменной myLibrary
тип any
. Проблема тут заключается в том, что у вас не будет, во время разработки, интеллектуальных подсказок по этой библиотеке, хотя использовать её в своём коде вы сможете. В этой ситуации можно воспользоваться и другим подходом, ведущим к тому же результату. Речь идёт об использовании переменной типа any
:
var myLibrary: any;
И в том и в другом случае при компиляции TS-кода в JavaScript, получится одно и то же, но вариант с использованием ключевого слова declare
отличается лучшей читабельностью. Применение этого ключевого слова приводит к созданию так называемого внешнего объявления переменной (ambient declaration).