Технический писатель и программист Райан Телин поделился в блоге на dev.to 50 самыми популярными вопросами на собеседовании по TypeScript и ответами на них. Мы разбили подборку на четыре части. Первую часть можете посмотреть здесь. Во вторую вошли девять вопросов о синтаксисе языка.
9. Как создать переменную в TypeScript?
Чтобы создать переменную в TypeScript, есть три способа: с помощью функций var
, let
, const
.
Автор подборки рекомендует по возможности избегать использования переменной var
, потому что это может вызвать проблемы при работе с крупными проектами.
var num:number = 1;
let
— это способ объявления переменных в TypeScript по умолчанию. По сравнению с var
эта функция уменьшает количество ошибок при компиляции и повышает читаемость кода.
let num:number = 1;
const
создает постоянную переменную, значение которой не может измениться. Функция использует те же правила области видимости, что и let
, и помогает снизить общую сложность программы.
const num:number = 100;
10. Как вызвать конструктор базового класса из дочернего класса?
Для вызова конструктора можно воспользоваться функцией super()
.
class Animal { name: string; constructor(theName: string) { this.name = theName; } move(distanceInMeters: number = 0) { console.log(`${this.name} moved ${distanceInMeters}m.`); } } class Snake extends Animal { constructor(name: string) { super(name); } move(distanceInMeters = 5) { console.log("Slithering..."); super.move(distanceInMeters); } }
11. Как использовать миксины (mix in) TypeScript?
Миксины (примеси) — это наследование, которое работает в противоположном направлении. Эти элементы языка позволяют создавать классы, комбинируя более простые настройки частичных классов из предыдущих классов.
12. Как проверить null
и undefined
?
Для проверки и null
и undefined
можно использовать параметр juggle-check
или strict-check
.
//juggle if (x == null) { }
var a: number; var b: number = null; function check(x, name) { if (x == null) { console.log(name + ' == null'); } if (x === null) { console.log(name + ' === null'); } if (typeof x === 'undefined') { console.log(name + ' is undefined'); } } check(a, 'a'); check(b, 'b');
13. Что такое геттеры/сеттеры в TypeScript? Как их использовать?
Геттеры и сеттеры — это особые типы методов, которые помогают делегировать различные уровни доступа к частным переменным в зависимости от потребностей программы.
Геттеры позволяют ссылаться на значение, но не могут его редактировать. Сеттеры не видят текущее значение переменной, но могут изменять его. Это важно для инкапсуляции.
Например, новый работодатель может get
(узнать/получить) информацию о количестве сотрудников в компании, но не имеет разрешения set
(устанавливать) это значение.
const fullNameMaxLength = 10; class Employee { private _fullName: string = ""; get fullName(): string { return this._fullName; } set fullName(newName: string) { if (newName && newName.length > fullNameMaxLength) { throw new Error("fullName has a max length of " + fullNameMaxLength); } this._fullName = newName; } } let employee = new Employee(); employee.fullName = "Bob Smith"; if (employee.fullName) { console.log(employee.fullName); }
14. Как сделать так, чтобы классы, определенные в модуле, были доступны вне модуля?
Чтобы открывать модули для использования вне модуля, можно использовать ключевое слово export
.
module Admin { // use the export keyword in TypeScript to access the class outside export class Employee { constructor(name: string, email: string) { } } let alex = new Employee('alex', 'alex@gmail.com'); } // The Admin variable will allow you to access the Employee class outside the module with the help of the export keyword in TypeScript let nick = new Admin.Employee('nick', 'nick@yahoo.com');
15. Как преобразовать строку в число?
Для преобразования строки в целое число или число с плавающей запятой можно:
parseInt
или parseFloat
.+
для преобразования строки в наиболее подходящий число. Например, «3» станет целым числом, а «3,14» — числом с плавающей запятой. var x = "32"; var y: number = +x;
16. Что такое файлы .map
? Почему и как его можно использовать?
.map
— это файлы карт, которые показывают, как исходный код TypeScript был интерпретирован в пригодный для использования код JavaScript. Эта информация позволяет обнаружить любое странное поведение компилятора, что упрощает отладку.
Многие отладчики, например Visual Studio или средства разработки Chrome, могут использовать эти файлы, чтобы отлаживать файл TypeScript вместо JavaScript.
17. Что такое классы в TypeScript? Как их определять?
Класс — это шаблон (blueprint), используя который можно создавать экземпляры объектов, у которых будет точно такая же конфигурация, как и у шаблона — те же свойства и методы. Класс определяет схему того, как должен выглядеть и действовать объект, а затем реализует этот объект, инициализируя свойства класса и определяя его методы.
Классы объявляются с помощью ключевого слова class
:
class Student { studCode: number; studName: string; constructor(code: number, name: string) { this.studName = name; this.studCode = code; }
Это вторая часть вопросов и ответов для собеседования по TypeScript. С первой можете ознакомиться по ссылке. В следующей разберем вопросы о связи между TypeScript и JavaScript.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…