https://github.com/devloversteam/typescript-interview-questions
Найпопулярніші запитання та відповіді на співбесіді з TypeScript
https://github.com/devloversteam/typescript-interview-questions
interview-questions typescript typescript-interview-questions typescript-interview-questions-and-answers
Last synced: 6 months ago
JSON representation
Найпопулярніші запитання та відповіді на співбесіді з TypeScript
- Host: GitHub
- URL: https://github.com/devloversteam/typescript-interview-questions
- Owner: DevLoversTeam
- License: mit
- Created: 2025-02-19T17:14:13.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-22T07:31:19.000Z (11 months ago)
- Last Synced: 2025-08-22T09:36:28.337Z (11 months ago)
- Topics: interview-questions, typescript, typescript-interview-questions, typescript-interview-questions-and-answers
- Homepage:
- Size: 554 KB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
TypeScript
Найпопулярніші запитання та відповіді на співбесіді з TypeScript
1. Поясніть, що таке TypeScript та які його ключові відмінності від JavaScript.
#### TypeScript
**TypeScript** — це надбудова над JavaScript, яка додає статичну типізацію,
інтерфейси та інші можливості для підвищення надійності коду.
#### Відмінності:
- **_Типізація:_** TS має статичні типи, JS — динамічні.
- **_Розробка:_** TS виявляє помилки на етапі компіляції, JS — під час
виконання.
- **_Сумісність:_** TS компілюється у JS, тому працює у всіх середовищах JS.
- **_Інструменти:_** краща підтримка IDE (автодоповнення, рефакторинг).
2. Що означає твердження, що TypeScript є надмножиною JavaScript?
#### TypeScript
- Це означає, що будь-який коректний JavaScript-код є також коректним
TypeScript-кодом. TypeScript розширює можливості JS, додаючи типи та інші
фічі, але при цьому не змінює базову мову.
3. Які основні вбудовані типи даних підтримує TypeScript?
#### TypeScript
**Основні типи в TypeScript:**
- `string` — рядки
- `number` — числа (цілі та з плаваючою крапкою)
- `boolean` — логічні значення
- `null` та `undefined`
- `any` — будь-який тип
- `unknown` — невідомий тип (безпечніша альтернатива any)
- `void` — відсутність значення (часто у функціях)
- `never` — функція ніколи не повертає значення (наприклад, кидає помилку)
- `object` — об’єкти
- `Масиви` (type[] або Array)
- `Кортежі` ([type1, type2, ...])
- `enum` — перерахування
4. Які способи оголошення змінних у TypeScript та як до них застосовується типізація?
#### TypeScript
У TypeScript змінні оголошуються так само, як у JavaScript: `let`, `const`,
рідше `var`.
**Тип можна:**
- вивести автоматично (Type Inference):
```TypeScript
let age = 25; // type: number
```
- задати явно:
```TypeScript
let age: number = 25;
const name: string = "Alice";
```
Зазвичай рекомендують використовувати `const` для незмінних значень, `let` для
змінних, а явну типізацію — там, де виведення типу неочевидне.
5. Що таке інтерфейси в TypeScript і для чого вони використовуються?
#### TypeScript
Інтерфейси в TypeScript описують структуру об’єкта (його властивості та їх
типи), не створюючи конкретної реалізації. Вони допомагають забезпечити контракт
між частинами коду.
**Основні можливості:**
- Опис форми об’єкта:
```TypeScript
interface User {
id: number;
name: string;
isAdmin?: boolean; // необов’язкове поле
}
const user: User = { id: 1, name: "Alice" };
```
- Підтримка опціональних властивостей (?).
- Можливість розширення (extends).
- Використання для опису структур функцій, класів та масивів.
По суті, інтерфейси — це спосіб зробити код більш передбачуваним і безпечним.
6. Що таке enum у TypeScript та в яких випадках його доцільно використовувати?
#### TypeScript
- `enum` (перерахування) — це тип, який дозволяє задати набір іменованих
констант.
#### Види:
- **Numeric enum** (значення автоматично інкрементуються):
```TypeScript
enum Direction {
Up, // 0
Down, // 1
Left, // 2
Right // 3
}
```
- **String enum:**
```TypeScript
enum Role {
Admin = "ADMIN",
User = "USER",
Guest = "GUEST"
}
```
Використовується, коли є обмежений набір варіантів (напр. ролі користувачів,
статуси замовлення, напрямки руху). Це робить код більш читабельним і безпечним,
ніж "магічні числа" чи рядки.
7. Як правильно оголошувати та використовувати функції в TypeScript із врахуванням типів?
#### TypeScript
- Функції визначаються так само, як у JavaScript, але в TypeScript можна явно
задавати типи параметрів і результату:
```TypeScript
// З явними типами
function add(a: number, b: number): number {
return a + b;
}
// Функціональний вираз
const greet = (name: string): string => {
return `Hello, ${name}`;
};
// Необов’язковий параметр
function log(message: string, userId?: number): void {
console.log(message, userId);
}
```
- Параметри можна робити обов’язковими, необов’язковими (?) або мати значення за
замовчуванням.
- Тип повернення можна вивести автоматично, але для складних функцій краще
вказувати явно.
- Для callback-ів та складних сигнатур використовують типи або інтерфейси
функцій.
8. Що таке виведення типу (type inference) у TypeScript і як воно працює?
#### TypeScript
- Виведення типу — це механізм, коли TypeScript автоматично визначає тип змінної
чи результату функції на основі наданого значення без явного оголошення.
#### Приклади:
```TypeScript
let count = 10; // TS виводить: number
let message = "Hi"; // TS виводить: string
function add(a: number, b: number) {
return a + b; // TS виводить: number (тип повернення)
}
```
- Перевага: менше коду, але збережена типобезпека.
- Ризик: у складних випадках краще явно вказувати тип, щоб уникнути
неочікуваного any.
9. У чому різниця між let і const у TypeScript і як правильно їх використовувати?
#### TypeScript
`let` — дозволяє оголосити змінну, значення якої можна змінювати. Має блочну
область видимості.
`const` — створює змінну, якій можна призначити значення лише один раз. Також
має блочну область видимості.
#### Приклад:
```TypeScript
let counter: number = 1;
counter = 2; // ✅ можна
const name: string = "Alice";
name = "Bob"; // ❌ помилка
```
Рекомендація: за замовчуванням використовувати `const`, а `let` — лише коли
змінна дійсно змінюється.
Важливо: `const` не робить об’єкт immutable, змінювати внутрішні властивості все
одно можна:
```TypeScript
const user = { id: 1, name: "Alice" };
user.name = "Bob"; // ✅ дозволено
```
10. Яким чином можна скомпілювати TypeScript-файли у JavaScript?
#### TypeScript
- Використовується TypeScript Compiler (tsc).
- Основні варіанти:
```bash
# компіляція одного файлу
tsc file.ts
# компіляція проєкту з налаштуваннями tsconfig.json
tsc
```
- У tsconfig.json можна задати цільову версію JS (target), директорію виводу
(outDir), модулі (module) тощо.
- Також можна включити watch mode:
```bash
tsc -w
```
У реальних проєктах часто використовують Babel, Webpack, Vite чи ts-node для
інтеграції компіляції у збірку чи запуск коду напряму.
11. ???
#### TypeScript
- Coming soon...😎