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

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

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

Технический писатель и программист Райан Телин поделился в блоге на 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. Как преобразовать строку в число? 

Для преобразования строки в целое число или число с плавающей запятой можно: 

  •   Как и в JavaScript воспользоваться функциями 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.

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

Обучение 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