Функции
Функций играют очень важную роль в системе типов TypeScript, они являются основными строительными блоками составной системы.
Описание параметров
Вы можете описать параметры функции так же, как вы можете описать другие переменные:
Здесь мы используем встроенное описание типов, кроме того, вы также можете использовать интерфейсы и другие методы.
Возвращаемый тип
Вы можете описывать возвращаемый тип тем же стилем, что и переменную после списка параметров функции, как в примере :Foo
:
Здесь мы используем interface
, но вы можете использовать другие методы, такие как встроенные аннотации.
Как правило, вам не нужно описывать возвращаемый тип функции, потому что это может быть выведено компилятором автоматически:
Тем не менее, часто бывает полезно добавить эти аннотации, чтобы помочь разрешить ошибки, такие как:
Если вы не планируете возвращать что-либо из функции, вы можете пометить это как :void
. Вы можете удалить void
, TypeScript выведет тип за вас.
Необязательные параметры
Так вы можете пометить параметры как необязательные:
В качестве альтернативы, когда вызывающая сторона не предоставляет параметр, вы можете указать значение по умолчанию (= someValue
после объявления параметра):
Перегрузка
TypeScript позволяет объявлять перегрузки функций. Это полезно для документации + безопасности типов. Рассмотрим следующий код:
Если вы внимательно посмотрите на код, вы обнаружите, что значения a, b, c и d будут меняться в зависимости от количества переданных параметров. Эта функция также требует только 1, 2 или 4 параметра. Вы можете использовать перегрузку функций для обеспечения и документирования этих ограничений. Вам нужно только объявить заголовок функции несколько раз. Последний заголовок функции фактически активен в теле функции, но не доступен извне.
Это выглядит так:
Здесь первые три заголовка функции могут эффективно вызывать заполнение:
Конечно, важно, чтобы окончательное объявление (реальное объявление, видимое внутри функции) было совместимо со всеми перегрузками. Это потому, что это истинная природа вызова функции, которую тело функции должно учитывать.
Объявление функции
Быстрый старт: аннотации типов - это способ описать существующие типы реализации
В отсутствие реализации функции существует два способа объявить тип функции:
Два примера в приведенном выше коде абсолютно одинаковы. Однако, когда вы хотите использовать перегрузку функций, вы можете использовать только первый способ:
Last updated
Was this helpful?