Технический писатель и программист Райан Телин поделился в блоге на dev.to 50 самыми популярными вопросами на собеседовании по TypeScript и ответами на них. Мы разбили подборку на четыре части. Первую часть можно посмотреть здесь, вторую здесь, третью здесь. В четвертую часть вошли четыре продвинутых вопроса с ответами и 20 вопросов для самостоятельного изучения.
27. Как добиться перегрузки функции в TypeScript?
Чтобы перегрузить функцию в TypeScript, нужно создать две функции с одним и тем же именем, но с разными типами аргументов/возвращаемых значений. Обе функции должны принимать одинаковое количество аргументов. Это важная часть полиморфизма в TypeScript.
Например, можно создать функцию add
, которая суммирует два аргумента, если это числа, и объединяет их, если они являются строками.
function add(a:string, b:string):string; function add(a:number, b:number): number; function add(a: any, b:any): any { return a + b; } add("Hello ", "Steve"); // returns "Hello Steve" add(10, 20); // returns 30
28. Как сделать все свойства интерфейса необязательными?
Чтобы сделать все свойства необязательными, можно воспользоваться частично сопоставленным типом partial
.
29. Когда используется ключевое слово unknown
?
unknown
используется, если неизвестно, какой тип ожидать заранее, но нужно назначить его позже, и если ключевое слово any
не будет работать.
30. Что такое декораторы и к чему их можно применить?
Декоратор — это особый вид объявления, который позволяет изменять классы и члены классов сразу, помечая их аннотацией @name
. Каждый декоратор должен ссылаться на функцию, которая будет оцениваться во время выполнения.
Например, декоратор @sealed
будет соответствовать запечатанной функции. Все, что помечено @sealed
, будет использоваться для оценки запечатанной функции.
function sealed(target) { // do something with 'target' ... }
Декоратор можно прикрепить к:
По умолчанию декораторы не включены. Чтобы их включить, нужно отредактировать поле experimentalDecorators
в параметрах компилятора в файле tsconfig.json
или в командной строке.
31. Какой модификатор доступа по умолчанию для переменных-членов и методов в TypeScript?
32. Когда используется ключевое слово declare
?
33. Что такое дженерики в TypeScript? Когда они используются?
34. Как и когда используется коллекция enum
?
35. Что такое пространства имен и зачем их использовать?
36. Как реализуются необязательные параметры?
37. Назовите три отличия между TypeScript и JavaScript.
38. Является ли TypeScript языком функционального программирования?
39. Какие функции TypeScript были бы полезны для full-stack-разработчика?
40. Назовите преимущества TypeScript Language Service?
41. Как создать повторно используемые компоненты?
42. В чем разница между кортежем и массивом в TypeScript?
43. Какие коллекции поддерживает TypeScript?
44. В чем разница между внутренними и внешними модулями в TypeScript?
45. Для чего используется тип Record
?
46. Какие преимущества дает TypeScript стеку технологий?
47. Как сгенерировать файл определения с помощью TypeScript?
48. Поддерживает ли TypeScript абстрактные классы?
49. Как настроить файл TypeScript для компиляции при каждом изменении?
50.Что такое Ambient
в TypeScript и когда их использовать?
Райан Телин также советует:
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…