Функції є основою TypeScript, і розуміння того, як ефективно їх використовувати, може допомогти вам виділитися під час співбесіди. Ось 7 важливих моментів про функції в TypeScript, які допоможуть вам успішно пройти співбесіду з кодування:
1. Параметри з розширенням (Rest Parameters)
TypeScript підтримує параметри з розширенням, що дозволяє вам обробляти довільну кількість аргументів як масив.
Приклад:
function greet(name: string = "Guest"): string {
return `Hello, ${name}!`;
}
Це ідеально підходить для таких сценаріїв, як підсумовування списку чисел.
2. Перевантаження функцій (Function Overloading)
Перевантаження функцій дозволяє визначити кілька сигнатур для однієї функції. Це корисно для створення гнучких API.
Приклад:
function combine(a: string, b: string): string;
function combine(a: number, b: number): number;
function combine(a: any, b: any): any {
return a + b;
}
Реалізація обробляє різні типи введених даних, при цьому TypeScript забезпечує правильне використання.
3. Типізація this
в функціях (this
Typing)
Явне визначення типу this
забезпечує безпеку типів під час його використання всередині функцій.
Приклад:
interface Person {
name: string;
greet(this: Person): string;
}
const person: Person = {
name: "Alice",
greet() {
return `Hi, I'm ${this.name}`;
}
};
Це запобігає неправильному використанню this
під час виклику функції.
4. Генерики (Generic Functions)
Генерики дозволяють функціям працювати з будь-яким типом, що робить їх багаторазовими та безпечними за типами.
Приклад:
function identity(arg: T): T {
return arg;
}
const str = identity("hello");
const num = identity(42);
Це гарантує, що тип повернутого значення збігається з типом введеного значення.
5. Використання call
, apply
та bind
Використовуйте call
, apply
та bind
, щоб явно встановити значення this
.
Приклад:
function sayHello(this: { name: string }): string {
return `Hello, ${this.name}`;
}
const user = { name: "John" };
console.log(sayHello.call(user));
Використовуйте .call
, .apply
або .bind
для виклику функцій із конкретними значеннями this
.
6. Використання call
, apply
та bind
Ці методи дозволяють явно контролювати контекст this
функції. Розуміння їх використання демонструє володіння основами JavaScript.
Приклад:
function sayHello(this: { name: string }): string {
return `Hello, ${this.name}`;
}
const user = { name: "John" };
console.log(sayHello.call(user));
Використовуйте .call
, .apply
або .bind
для виклику функцій із конкретними значеннями this
.
7. Повертаючі типи void
та never
- Використовуйте
void
для функцій, які не повертають значення. - Використовуйте
never
для функцій, які ніколи не повертають значення, наприклад, для тих, що кидають помилки.
Приклади:
function logMessage(message: string): void {
console.log(message);
}
function throwError(message: string): never {
throw new Error(message);
}
Це необхідно для написання надійного коду для обробки помилок.
Поради для співбесід
- Зосередьтеся на крайніх випадках, таких як необов'язкові параметри та генерики.
- Будьте готові пояснити ваш вибір типів.
Для кращого розуміння TypeScript рекомендую Programming TypeScript: Making Your JavaScript Applications Scale. Удачі!
Застереження: Це афілійоване посилання, і я можу отримати комісію, якщо ви зробите покупку через нього без додаткових витрат для вас.
Перекладено з: 7 Must-Know TypeScript Function Concepts for Coding Interviews