Spec-Zone.ru › Flow

Аннотации типов

Добавление аннотаций типов — важная часть работы с Flow.

Flow умеет эффективно выводить типы ваших программ. Flow может понять большую часть вашего кода без аннотаций. Например, для распространённых шаблонов, таких как Array.map, не нужно добавлять аннотации:

["foo", "bar"].map(s => ( // s is inferred to have type string
  s.length
));

Однако есть места, где вам понадобится добавить типы.

Рассмотрим следующую функцию concat для объединения двух строк.

function concat(a, b) { // Error
  return a + b;
}

Вам нужно добавить аннотации к параметрам concat, чтобы Flow мог проверить типы в её теле. Теперь Flow будет выдавать предупреждение, если вы вызовете эту функцию с неожиданными типами.

function concat(a: string, b: string) {
  return a + b;
}


concat("A", "B"); // Works!
concat(1, 2); // Error!

В этом руководстве вы узнаете синтаксис и семантику всех типов, доступных в Flow.

См. также​

  • Примитивные типы — boolean, string, number, null, void, symbol, bigint
  • Литеральные типы — использование конкретных значений, например 2 или "foo", в качестве типов
  • Объекты — описание типов структуры объектов JavaScript
  • Массивы — списки значений переменной длины
  • Кортежи — списки фиксированной длины с типом для каждого элемента
  • Функции — параметры, возвращаемые типы и обобщения
  • Классы — поля классов, методы и номинальная типизация
  • Интерфейсы — структурная типизация классов и объектов
  • Объединения — значения, принадлежащие одному из нескольких типов (A | B)
  • Пересечения — значения, принадлежащие сразу нескольким типам (A & B)
  • Обобщения — параметризованные типы для повторно используемого, типобезопасного кода
  • Псевдонимы типов — присвоение имён сложным типам
  • Непрозрачные псевдонимы типов — псевдонимы типов, скрывающие базовый тип
  • Вспомогательные типы — встроенные преобразования типов, например Partial, Readonly, keyof

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

Spec-Zone.ru

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