Типи даних для методів та функцій (void, type, never, custom, optional, readonly)
Last updated
Last updated
У TypeScript void є спеціальним типом даних, який вказує, що функція не повертає жодного значення. Тобто, функція з типом void не має оператора return або повертає undefined.
У цьому прикладі sayHello - це функція, яка не повертає жодного значення. Вона виконує console.log і не має return оператора. Утім, якщо його вказати, то одразу виникне помилка.
Функції з типом void зазвичай використовуються для виконання певних дій без необхідності повертати якесь значення. Наприклад, функція, яка записує дані до бази даних чи виводить їх на екран, може бути визначена з типом void, оскільки вона не повертає жодних конкретних даних.
В TypeScript Return Type (тип повернення) вказує тип даних, який функція повертає. Це означає, що можна визначити очікуваний тип даних, який повинна повертати функція.
Це допомагає розробникам зрозуміти, який тип даних очікується від функції, і допомагає уникнути помилок в час виконання, пов'язаних з неправильним типом даних, що повертається функцією.
Повернення числа:
Повернення рядка:
Never - це спеціальний тип в TypeScript, який означає, що функція ніколи не закінчується і нічого не повертає (навіть undefined).
Прикладом такої функції може бути listen в express. Тобто підключення до сервера постійне. Навіть якщо і виникає помилка, то функція не закінчиться.
В TypeScript Function Type - це спосіб визначити тип для функцій. Можна вказати типи параметрів та тип даних, який функція повертає. Це дозволяє статично перевірити відповідність типів при виклику функції та покращує надійність коду.
З прикладу вище видно, що функція приймає два числові параметри. І якщо, скажімо ми в неї передамо рядок, то виникне помилка.
Наприклад, функція нічого не повертає, але приймає число для виводу в консолі.
Якщо передати у функцію рядок, то виникне помилка.
Опис структури особливо корисно робити для callback-функцій.
У прикладі вище окрім числових аргументів ми передаємо callback-функцію в нашу головну функцію та описуємо її структуру.
Розробник може створити свій власний тип даних. Кастомний тип позначають ключовим словом type, а після нього вказують назву типу з великої літери і далі описують структуру. Наприклад опишемо тип для книжки, яку створювали раніше.
Тобто ми описали структуру змінної, а потім цей тип призначили змінній. І Якщо буде хоч одна невідповідність, то нам буде вказано на помилку. Наприклад, якщо не буде вказано, якийсь обовʼязковий параметр.
Подивімося на наш код js після компіляції. Як бачимо, тип не компілюється.
Опис кастомних типів даних можна винести в окремі файли і експортувати-імпортувати їх.
Можна також експортувати всі типи одним обʼєктом: export type { Book };
І імпортувати в головному файлі.
В цьому прикладі ми тип імпортуємо як type Book = import("./types").Book;
Утім у сучасній розробці використовується сучасний імпорт модулів, наприклад import { Book } from './types';, але для цього потрібно налаштувати компілятор TypeScript, що буде розглянуто далі.
Якщо зараз хочете перевірити роботу цього імпорту розгорніть стрілку нижче.
У TypeScript можна зробити параметр функції опціональним, додавши знак питання ? після імені параметра. Тобто цей параметр можна передавати, а можна і не передавати. Раніше подібний синтаксис було розглянуто при роботі з обʼєктами.
Якщо знак питання прибрати, то параметр є обовʼязковим. Тобто, якщо його не передати, то виникне помилка.
Якщо якомусь параметру ми хочемо задати можливість тільки читання і заборонити зміну, то використовують інструкцію readonly
В такому випадку при спробі змінити змінну нам видасть помилку.
Трохи докладніше про помилки компіляції імпортованих модулів можна почитати на .