Подтвердить что ты не робот

Что такое "Ambient Typings" в инструменте Typescript Typings?

Я слышал термин "ambient", используемый для описания определений типов, загружаемых с помощью инструмента typings. Что это значит?

Я не могу найти прямое определение этого или флаг --ambient.

4b9b3361

Ответ 1

Из TypeScript docs:

Объявление об окружающей среде вводит переменную в область TypeScript, но имеет нулевое влияние на испущенную программу JavaScript. Программисты могут использовать эмбиентные объявления, чтобы сообщить компилятору TypeScript, что какой-либо другой компонент будет поставлять переменную. Например, по умолчанию компилятор TypeScript будет печатать ошибку для использования переменных undefined. Чтобы добавить некоторые общие переменные, определенные браузерами, программатор TypeScript может использовать эмбиентные объявления.

https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#1.1

Проще говоря. Анонимные объявления сообщают компилятору TypeScript, что при запуске JavaScript что-то будет существовать, что компилятор TypeScript не может видеть прямо сейчас (потому что это не TypeScript).

Представьте, что вы пишете код, который использует jQuery. Если вы просто попробуете написать $() TypeScript, то подумаете, что используете необъявленную переменную $ и выкинете ошибку. Декларации окружения, такие как declare var $, сообщают компилятору TS, что, хотя $ не отображается компилятору, он будет существовать при выполнении JS.

Ответ 2

Из описания типов v1.0.0 неопределенный термин ambient был изменен на global.

Вы можете просто подумать, что эти определения типов являются "глобальными" для проекта.