Рубріки: Подборки

Ответы на самые популярные вопросы на собеседовании по TypeScript: связь TS и JS

Богдан Мирченко

Технический писатель и программист Райан Телин поделился в блоге на dev.to 50 самыми популярными вопросами на собеседовании по TypeScript и ответами на них. Мы разбили подборку на четыре части. Первую часть можно посмотреть здесь, вторую здесь. В третью часть вошли девять вопросов о связи между TypeScript и JavaScript и продвинутые вопросы.

 18. Как TypeScript связан с JavaScript?

TypeScript — это синтаксическое надмножество JavaScript с открытым исходным кодом, которое компилируется в JavaScript. Все оригинальные библиотеки и синтаксис JavaScript по-прежнему работают, но TypeScript добавляет дополнительные параметры синтаксиса и функции компилятора, которых нет в JavaScript. 

TypeScript также может взаимодействовать с большинством тех же технологий, что и JavaScript, такими как Angular и jQuery.

 19. Что такое JSX в TypeScript? 

JSX — это встраиваемый XML-подобный синтаксис, который позволяет создавать HTML. TypeScript поддерживает встраивание, проверку типов и компиляцию JSX непосредственно в JavaScript.

 20. Какие режимы JSX поддерживает TypeScript? 

TypeScript имеет встроенную поддержку для режимов preservereact и react-native.

  • preserve сохраняет JSX без изменений для использования в последующем преобразовании;
  • react не выполняет преобразование JSX, а вместо этого генерирует метод react.createElement и выводит его как файл с расширением .js;
  • react-native сочетает в себе свойства режимов preserve и react: поддерживает весь JSX и выводит его как файл с расширением .js.

 21. Как скомпилировать файл TypeScript?

Для этого нужно вызвать компилятор TypeScript tsc. Компилятор устанавливается с помощью менеджера пакетов npm:

npm install -g typescript
tsc <TypeScript File Name>

22. Какие области видимости доступны в TypeScript? Как это связано с JavaScript?

  • Глобальная область: определяется вне любого класса и может использоваться в любом месте программы;
  • Область видимости функции/класса: переменные, определенные в функции или классе, которые могут использоваться в любом месте в пределах этой области;
  • Локальная область действия/область действия блока: переменные, определенные в локальной области видимости, могут использоваться в любом месте этого блока.

Продвинутые вопросы по TypeScript

 23. Что такое стрелочные/лямбда-функции? 

Стрелочные функции — это сокращенный синтаксис для определения функциональных выражений анонимных функций. Это похоже на лямбда-функции в других языках программирования. Стрелочная функция позволяет пропустить ключевое слово function и написать более короткий код.

 24. Объясните, что такое Rest-параметры и правила их объявления 

Rest-параметры позволяют передавать функции различное количество аргументов (ноль и более). Это полезно, когда нет информации о том, сколько параметров получит функция. Все аргументы после оставшегося символа  будут сохранены в массиве. Например:

function Greet(greeting: string, ...names: string[]) {
    return greeting + " " + names.join(", ") + "!";
}

Greet("Hello", "Steve", "Bill"); // returns "Hello Steve, Bill!"

Greet("Hello");// returns "Hello !" 

Rest-параметр должен быть последним в определении параметра, при этом может быть только один rest-параметр на функцию.

 25. Что такое директивы с тремя наклонными чертами (Triple-Slash Directives)? Какие они бывают? 

Директивы с тремя наклонными чертами — это однострочные комментарии, содержащие тег XML для использования в качестве директив компилятора. Каждая директива указывает, что загружать в процесс компиляции. Директивы с тремя наклонными чертами работают только в верхней части своего файла и будут рассматриваться как обычные комментарии в любом другом месте файла.

  • /// <reference path=”…” /> — наиболее распространенная директива, которая определяет зависимость между файлами;
  • /// <reference types=”…” /> — определяет зависимость для пакета;
  • /// <reference lib=”…” /> — позволяет исключить встроенный файл «lib».

 26.Что делает тип Omit?

Omit — это форма служебного типа, которая упрощает преобразование общих типов. Omit позволяет создать тип, передав текущий Type и выбрав Keys, которые нужно пропустить в новом типе. 

Omit<Type, Keys>

Например:

interface Todo {
  title: string;
  description: string;
  completed: boolean;
  createdAt: number;
}

type TodoPreview = Omit<Todo, "description">;

Это третья часть вопросов и ответов для собеседования по TypeScript. С первой можно ознакомиться здесь, со второй здесь. В заключительной части мы продолжим разбирать продвинутые вопросы по TypeScript.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023