Spec-Zone.ru › Flow

Определения библиотек

Что такое «определение библиотеки»?​

Большинство реальных программ на JavaScript зависят от стороннего кода, а не только от кода, который непосредственно контролируется проектом. Это означает, что проект, использующий Flow, может ссылаться на внешний код, у которого либо отсутствует информация о типах, либо эта информация неточна и/или недостаточно подробна. Для решения этой проблемы Flow поддерживает концепцию «определения библиотеки» (также называемого «libdef»).

Libdef — это специальный файл, который сообщает Flow о сигнатурах типов конкретного стороннего модуля или пакета модулей, используемых вашим приложением. Если вы знакомы с языками, в которых есть заголовочные файлы (например, C++), можете считать libdef похожей концепцией.

В этих специальных файлах используется то же расширение .js, что и в обычном коде JS, но они размещаются в каталоге flow-typed в корневом каталоге проекта. Размещение в этом каталоге сообщает Flow, что их следует интерпретировать как libdef, а не как обычные файлы JS.

ПРИМЕЧАНИЕ. Использование каталога /flow-typed для libdef — это соглашение, позволяющее Flow JustWork™ сразу после установки и обеспечивающее единообразие в проектах, использующих Flow. Однако можно также явно настроить Flow на поиск libdef в другом месте с помощью раздела [libs] в файле .flowconfig.

Также вы можете узнать больше о файлах объявлений.

Общие рекомендации​

Старайтесь предоставлять libdef для каждой сторонней библиотеки, используемой вашим проектом.

Если ваш проект использует стороннюю библиотеку, в которой отсутствует информация о типах, Flow будет обращаться с ней как с любой другой зависимостью без типов и пометит все её экспорты как any.

Поэтому рекомендуется находить или писать libdef для как можно большего числа используемых вами сторонних библиотек. Советуем ознакомиться с flow-typed инструментом и репозиторием, которые помогут быстро находить и устанавливать готовые libdef для сторонних зависимостей.

См. также​

  • Файлы объявлений — файлы .flow для объявления типов рядом с модулями без типов
  • Типы модулей — как импортировать и экспортировать типы между модулями
  • .flowconfig [libs] — настройка путей к определениям библиотек

© 2013–present Facebook Inc.
Licensed under the MIT License.
https://flow.org/en/docs/libdefs

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API