> Что такое TypeScript (TypeScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: Иннотех, ITQ Group МКБ БАНК, Альфа-банк, Инрэко, Kvando Technologies, РСХБ, IT-One, EdenAI, Сбер

Стек: TypeScript

> Пример ответа

Короткий ответ

TypeScript - это строго типизированное надмножество JavaScript, которое добавляет статическую типизацию и современные возможности языка. Он компилируется в обычный JavaScript, обеспечивая раннее выявление ошибок на этапе разработки, улучшенную документацию кода и поддержку IDE. TypeScript помогает писать более надёжный и масштабируемый код для больших проектов.

Подробное объяснение

TypeScript был создан Microsoft в 2012 году как расширение JavaScript. Он включает все возможности JavaScript и добавляет систему типов, интерфейсы, дженерики, перечисления и другие фичи. Основная цель - сделать разработку более безопасной и предсказуемой за счёт проверки типов во время компиляции, а не в runtime.

Ключевые особенности:

  • Статическая типизация - переменные, параметры и возвращаемые значения могут иметь явно указанные типы
  • Вывод типов - TypeScript автоматически определяет типы, когда это возможно
  • Совместимость с JavaScript - любой валидный JS-код является валидным TS-кодом
  • Конфигурация через tsconfig.json - гибкая настройка строгости проверок и целевой версии JS

TypeScript не выполняется напрямую в браузере или Node.js - он транслируется в JavaScript с помощью компилятора tsc. Это означает, что типы существуют только на этапе разработки и не влияют на производительность в production.

На практике

В реальной разработке TypeScript используется для:

  • Уменьшения количества runtime-ошибок, связанных с типами
  • Улучшения автодополнения и навигации в IDE
  • Документирования API через типы и интерфейсы
  • Рефакторинга больших кодовых баз с уверенностью, что ничего не сломается
  • Работы в команде - типы служат контрактом между модулями

Настройка проекта обычно включает установку TypeScript (npm install typescript --save-dev) и создание tsconfig.json с параметрами вроде strict: true для максимальной безопасности.

Пример кода

TYPESCRIPT
// Явная типизация
function greet(name: string): string {
return `Hello, ${name}!`;
}
// Интерфейс для описания структуры объекта
interface User {
id: number;
name: string;
email?: string; // необязательное поле
}
// Использование интерфейса
function createUser(data: User): User {
return data;
}
// Дженерики для переиспользуемых функций
function getFirst<T>(arr: T[]): T | undefined {
return arr[0];
}
// Пример с union types
type Status = 'active' | 'inactive';
let userStatus: Status = 'active';

Как отвечать на собеседовании

Начни с краткого определения: TypeScript - это типизированное надмножество JavaScript. Затем объясни, зачем он нужен: статическая типизация помогает ловить ошибки на этапе разработки, улучшает читаемость кода и упрощает рефакторинг. Упомяни, что TypeScript компилируется в JavaScript и не меняет поведение в runtime. Приведи простой пример: разница между function add(a, b) в JS (где можно передать строки) и function add(a: number, b: number): number в TS. Подчеркни, что TypeScript - это инструмент для разработчика, а не отдельный язык.

Что проверяет интервьюер

Интервьюер хочет убедиться, что ты понимаешь:

  • Разницу между статической и динамической типизацией
  • Что TypeScript - это надмножество, а не замена JavaScript
  • Как работает компиляция и что типы не влияют на runtime
  • Базовые концепции: типы, интерфейсы, дженерики
  • Практическую пользу TypeScript в реальных проектах

Типичные ошибки

  • Говорить, что TypeScript - это отдельный язык программирования (это надмножество)
  • Утверждать, что TypeScript выполняется в браузере (он компилируется в JS)
  • Путать типы и интерфейсы - хотя они похожи, у них разные возможности
  • Игнорировать strict mode - без него теряется смысл типизации
  • Думать, что TypeScript гарантирует отсутствие ошибок в runtime - типы проверяются только на этапе компиляции

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью