Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 512новых вакансий за сутки·54 396вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 565
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 395 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python8 752
  • Облачные технологии6 631
  • QA вакансии2 183
  • Android1 322
  • Инженер данных860
  • Продакт-менеджер316

Разработка

  • iOS1 238
  • Backend вакансии1 196
  • AI вакансии549
  • Fullstack вакансии500
  • Frontend вакансии426
  • Mobile вакансии28

По стеку

  • Go5 209
  • Java3 131
  • Kotlin1 113
  • Node.js1 008
  • Rust833
  • .NET656
  • PHP322
  • C++270
  • C#207

DevOps и инфраструктура

  • Kubernetes3 882
  • Linux-инфраструктура2 817
  • DevOps вакансии2 655
  • Terraform / IaC2 191
  • Мониторинг и Observability1 071
  • CI/CD919
  • SRE308
  • Кибербезопасность38

Аналитика и данные

  • Аналитик данных522
  • Data Scientist435
  • Бизнес-аналитик397
  • Системный аналитик67

Другие направления

  • Проджект-менеджер109
  • UI/UX дизайн67
  • Ручное тестирование14

По регионам

  • Вакансии в США25 642
  • Вакансии в Европе10 259
  • Работа в России3 639
  • Вакансии в Канаде2 255

По формату

  • Удалённые вакансии42 339
  • Релокация в США25 642
  • Гибридная работа5 706
  • Офисная работа4 402

По уровню

  • Senior вакансии22 510
  • Middle вакансии11 429
  • Junior вакансии3 877

Сейчас нанимают

Все компании
  • Wise192 вакансии
  • Rakuten189 вакансий
  • ASML163 вакансии
  • Grab134 вакансии
  • Celonis42 вакансии
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К подготовке по вакансии←К теме TypeScriptВсе вопросы
TypeScriptSeniorОпыт

Как понять, что команда использует TypeScript идиоматично, а не переносит привычки из другого языка?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Признаки идиоматичного TS: включённый strict, utility types вместо дублирования интерфейсов, discriminated union с exhaustive check, type guard вместо as, минимум any — всё это легко проверяется через tsconfig и ESLint.

Code review: на что смотреть

Первый уровень — статический анализ pull request'ов. Смотрим на:

  • Частота as и any — запустите grep -rn ' as ' src/ | wc -l и grep -rn ': any' src/ | wc -l. В идиоматичном коде их единицы.
  • Type guard vs type assertion — есть ли функции с value is T в сигнатуре, или всё делается через as T?
  • Utility types — используются ли Partial<T>, Required<T>, Pick<T, K>, Omit<T, K>, ReturnType<F>, Parameters<F>? Если везде дублируются интерфейсы вручную — это признак Java-мышления.
// не идиоматично: ручное копирование полей
interface UserPreview {
  id: string;
  name: string;
}

// идиоматично: derive from source of truth
type UserPreview = Pick<User, 'id' | 'name'>;

Признаки идиоматичного TypeScript в кодовой базе

Переход из Java, C# или Python оставляет следы в коде: паттерны правильные по логике, но написаны не в духе TypeScript. Разберём конкретные сигналы и как их диагностировать.

Проверка конфигурации

Откройте tsconfig.json. Идиоматичная команда включает строгий режим полностью:

{
  "compilerOptions": {
    "strict": true,
    "noUncheckedIndexedAccess": true,
    "exactOptionalPropertyTypes": true,
    "noImplicitOverride": true
  }
}

Если strict выключен или отключены отдельные флаги (strictNullChecks: false) — команда избегает TS-ошибок вместо того, чтобы их решать.

Паттерны, выдающие другой язык

// Java-паттерн: getter/setter методы в классе
class UserService {
  private _user: User | null = null;
  getUser(): User | null { return this._user; }
  setUser(u: User): void { this._user = u; }
}

// TypeScript-идиоматично: функции + иммутабельные структуры
type UserState = { readonly user: User | null };
const withUser = (state: UserState, user: User): UserState => ({ ...state, user });

// Python-паттерн: dict с any
const config: { [key: string]: any } = {};

// TypeScript-идиоматично: discriminated union
type Config =
  | { mode: 'production'; apiUrl: string }
  | { mode: 'development'; mockDelay: number };

Работа с discriminated unions

Идиоматичный TypeScript широко использует discriminated union + exhaustive check через never:

type Shape =
  | { kind: 'circle'; radius: number }
  | { kind: 'square'; side: number };

function area(shape: Shape): number {
  switch (shape.kind) {
    case 'circle': return Math.PI * shape.radius ** 2;
    case 'square': return shape.side ** 2;
    default: {
      const _exhaustive: never = shape;
      throw new Error(`Unknown shape: ${JSON.stringify(_exhaustive)}`);
    }
  }
}

Если команда не знает этого паттерна и использует if/else с as — это явный перенос привычек.

ESLint как автоматическая диагностика

Включите @typescript-eslint/recommended-requiring-type-checking и смотрите на количество предупреждений. Правила no-explicit-any, no-unsafe-assignment, no-floating-promises выявляют неидиоматичный код автоматически.

Подводные камни

  • Команда отключает eslint-правила через disable-комментарии — // eslint-disable-next-line @typescript-eslint/no-explicit-any в каждом файле хуже, чем единый eslint-disable в конфиге.
  • Overuse классов — в TypeScript классы нужны реже, чем в Java; функции + типы часто чище и лучше tree-shake'ятся.
  • Enum вместо const object / union — числовые enum сериализуются непредсказуемо, строковые union прозрачнее.
  • Отсутствие readonly — иммутабельность не выражена в типах, мутации происходят случайно.
  • Ручные типы вместо infer/ReturnType — дублирование типов ломается при рефакторинге.
  • Promise без await обёртки и без catch — floating promise не поймать без no-floating-promises eslint-правила.
  • Неиспользование satisfies оператора (TS 4.9+) — команды, пришедшие со старым бэкграундом, не знают об этом операторе для валидации без widening типа.

Что портит ответ

  • Сразу обвинять TypeScript, не проверив соседние слои системы
  • Чинить симптом без минимального воспроизведения и evidence
  • Не учитывать версии, конфигурацию, окружение и recent changes

Что слушает интервьюер

  • Умеет локализовать проблему вокруг TypeScript
  • Двигается от симптома к гипотезам и проверкам
  • Отличает баг инструмента от ошибки использования или окружения

Как вы знаете этот вопрос?

Проверить себя по теме TypeScript →
←Предыдущий вопросЧто такое `keyof` и как он используется?Следующий вопрос→Представьте, сервис на TypeScript стал медленнее или нестабильнее после релиза. Какие language/runtime-specific причины вы проверите?

Связанные темы

TypeScriptDebuggingtechnical-communicationtechnology-selectiontrade-off-analysis

Вакансии с этим навыком

TypeScript вакансии
  • Fullstack-разработчик (Node.js/React)
  • HMI D&E Software- Delivery Line Manager - Hsinchu
  • AI Enablement Lead (GenAI Value Lab) (#5686)
  • Lead Fullstack Engineer (React+Next.js) (#5392)
  • Senior Python Engineer (with TypeScript and Agentic development experience) (#5874)

Частые вопросы на собеседовании

  • Что такое TypeScript и какие основные преимущества он даёт по сравнению с обычным JavaScript?
  • В чём разница между interface и псевдонимом типа (type) в TypeScript?
  • Что такое generics в TypeScript и зачем они нужны? Приведите пример.
  • Для каких задач TypeScript является сильным выбором, а где лучше честно выбрать другой язык?