Аннотации типов
Добавление аннотаций типов — важная часть работы с 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