Functions
Functions
Функції.
Система типів TypeScript приділяє велику увагу функціям, адже вони є основними будівельними блоками компонованої системи.
Parameter annotations
Звичайно, ви можете анотувати параметри функції так само, як ви можете анотувати інші змінні:
Тут я використовував анотації вбудованого типу. Звичайно, ви можете використовувати інтерфейси тощо.
Return type annotation
Ви можете позначити тип повернення після списку параметрів функції таким самим стилем, як і для змінної, наприклад. : Foo
у прикладі нижче:
Звичайно, я використовував тут interface
, але ви можете використовувати інші анотації, наприклад. вбудовані анотації.
Досить часто вам не необхідно коментувати тип повернення функції, оскільки він зазвичай може бути визначений компілятором.
Однак, як правило, доцільно додати ці анотації, щоб допомогти з помилками, наприклад:
Якщо ви не плануєте нічого повертати з функції, ви можете позначити її як :void
. Загалом, ви можете відмовитися від :void
і залишити це механізму висновку.
Optional Parameters
Ви можете позначити параметр як необов’язковий:
Крім того, ви можете навіть надати значення за замовчуванням (використовуючи = someValue
після оголошення параметра), яке буде введено для вас, якщо абонент не надає цей аргумент:
Overloading
TypeScript дозволяє декларувати перевантаження функцій. Це корисно для документації та безпеки типу. Розглянемо наступний код:
Якщо ви уважно подивитесь на код, то зрозумієте, що значення «a», «b», «c», «d» змінюється залежно від кількості переданих аргументів. Крім того, функція очікує лише 1
, 2
або 4
аргументи. Ці обмеження можна зробити обовʼязковими та задокументовати за допомогою перевантаження функцій. Ви просто оголошуєте заголовок функції кілька разів. Останній заголовок функції є фактично активним внутрішним тіла функції, але недоступний для зовнішнього світу.
Це показано нижче:
Тут перші три заголовки функцій доступні як дійсні виклики padding
:
Звичайно, важливо, щоб кінцева декларація (справжня декларація, яку видно зсередини функції) була сумісною з усіма перевантаженнями. Це пояснюється тим, що це справжня природа викликів функцій, яку має враховувати тіло функції.
Перевантаження функцій у TypeScript не призводить до накладних витрат під час виконання. Це просто дозволяє вам задокументувати спосіб, яким ви очікуєте виклик функції, а компілятор контролює решту вашого коду.
Declaring Functions
Швидка порада: Type Declarations описують типи існуючих реалізацій.
Є два способи декларування тип функції без надання реалізації. наприклад
Наведений вище приклад практично еквівалентний. Відмінності існують, коли ви хочете додати перевантаження. Ви можете лише додати перевантаження у версії довгої декларації, наприклад.
[](### Type Compatibility)
Last updated