Перейти к основному содержимому

Вопросы по TypeScript

Что такое TypeScript и зачем использовать его вместо JavaScript?

  • это надмножество JS, которое добавляет в него возможность явного статического назначения типов. (этот язык проект Microsoft)
  • Одним из серьёзных преимуществ TS перед JS является возможность, которая позволяет, прямо в процессе ввода кода, выявлять ошибки

Что такое обобщения(Generic) и зачем они нужны?

  • Это инструмент, который позволяет писать на TypeScript функции и классы, способные работать с различными типами данных, сохраняя работоспособность проверки типов

Поддерживает ли TypeScript все принципы ООП?

  • Да, Есть 4 принципа: - Инкапсуляция - размещение в оболочке(изоляция), закрытие чего-либо инородного с целью исключения влияния на окружающее - Наследование - позволяет использовать повторно функциональность и свойства существующего объекта в новом - Абстракция - означает, что для каждого объекта мы задаём минимальное количество методов, полей и описаний, которые позволят нам решить задачу. - Полиморфизм - означает, что функция или метод может работать с разными типами

Что представляют собой .map-файлы в TypeScript?

Это файлы карты, которые позволяют инструментам сопоставлять выпущенный код JavaScript и исходные файлы TypeScript, которые его создали.

Что такое геттеры и сеттеры в TypeScript?

  • TypeScript поддерживает геттеры и сеттеры, которые позволяют управлять доступом к элементам класса.- Они дают разработчику средства контроля над чтением и записью свойств объектов. Для объектов можно использовать Object.defineProperty для определения геттеров и сеттеров https://www.dropbox.com/s/5lpp2l246j2ow98/ObjectSettersGetters.png?dl=0 и это уже не связанно с TypeScript Указание set и get в литералах(константах) - https://www.dropbox.com/s/c3m9c2e8zojxflj/ObjectSettersGettrersInConst.png?dl=0

Можно ли использовать TypeScript в серверной разработке, и если да — то как?

  • Да, лучший способ сделать это - установить nodemon и ts-node в зависимости разработки и добавить 2 срипта: - start для развертывания на сервере "ts-node ./src/app.ts" - dev для локального запуска с авто-обновлением сервера при обновлении файлов: "nodemon ./src/app.ts"

Расскажите об основных компонентах TypeScript

  • Язык. Синтаксис который позволяет писать на TypeScript
  • Компилятор. Он выполняет преобразование TypeScript-кода в JavaScript-код и сообщает об ошибках типов если они имеются. Еще он позволяет объединять несколько TypeScript-файлов в один выходной JS-файл и умеет создавать карты кода
  • Вспомогательные инструменты. Это среды разработки такие как VS Code, которые могут быстро запускать TS-код

Что такое перегрузка функции и поддерживает ли её TypeScript?

Это объявление функции с тем же именем несколько раз. Чтобы компилятор мог отличать «перегруженные» функции между собой, у них должны быть разные параметры- Да, TS поддерживает перегрузку, но не совсем так как в других языках- Перегрузка может быть полезна для предопределения типа возвращаемого значения, в зависимости от типов передаваемых в функции аргументов- https://www.dropbox.com/s/5ysnsui9ixto663/functionOverloadTS.png?dl=0 пример перегрузки в TypeScript

Чем различаются ключевые слова interface и type в TypeScript?

  • Интерфейсом можно описать только тип объекта, а типом можно описать примитивные значения
  • Но у интерфейса есть преимущества: Интерфейс может быть использован в выражении extends или implements Интерфейс может иметь несколько объединённых объявлений«слияние объявлений» - означает, что компилятор может объединять объявления, объявленные с одним и тем же именем, в одно определение

Расскажите о том, когда в TypeScript используют ключевое слово declare?

  • Ключевое слово declare используется в TypeScript для объявления переменных, источником которых может служить некий файл, не являющийся TypeScript-файлом.

Что такое внешние объявления переменных в TypeScript и когда их нужно использовать?

  • Это механизм, который позволяет сообщать компилятору TypeScript о том, что некий исходный код существует где-то за пределами текущего файла- Внешние объявления помогают интегрировать в TS-программы сторонние JavaScript-библиотеки.- Эти объявления делают в файле объявления типов с расширением .d.ts

Можно ли автоматически генерировать файлы объявлений TypeScript из JS-библиотек?

  • Microsoft/dts-gen — официальное средство, используемое Microsoft как отправная точка при создании объявлений типов- Установить опцию компилятора на true в файле tsconfig.json"compilerOptions": { "declaration": true }

Какая польза от файла tsconfig.json?

Файл tsconfig.json определяет корневые файлы и параметры компилятора, необходимые для компиляции проекта.

Какое ключевое слово используется для наследования в TypeScript?

  • extends - это ключевое слово, которое вам следует искать

Можно ли в TypeScript унаследовать от класса?

  • Да, через ключевое слово extends

Что такое пространство имен в TypeScript?

  • Это просто способ логически сгруппировать связанные классы или интерфейсы в оболочке

Что такое декораторы в TypeScript?

  • Декораторы - это просто функции, которые изменяют класс, свойство, метод или параметр метода.

Как объявить декоратора?

  • Синтаксис - это символ «@», за которым следует функция- @readonly class foo {…}- На текущий момент декораторы являются экпериментальной функциональностью языка TypeScript, поэтому при компиляции следует указывать параметр experimentalDecorators

Для чего используется ключевое слово as в TypeScript?

as - это дополнительный синтаксис для утверждения типа в TypeScript

Когда используется ключевое слово «unknown»?

Когда вы не хотите использовать ключевое слово any и/или заранее не знаете точный тип, но хотите назначить его позже.

Для чего нужен тип «Omit»?

  • Это новый тип, в котором можно указать свойства, которые будут исключены из исходного типа
type Person = { name: string; age: number; location: string; }
type QuantumPerson = Omit<Person, 'location'> // Аналогично следующей строке
QuantumPerson = { name: string; age: number; }

Что делает объект instanceof в TS?

Оператор instanceof используется для проверки, является ли объект объектом указанного класса

Чем Отличаются Друг От Друга Типы Объединения(«|») И Пересечения («&»)?

  • Объединение, позволяет создавать из множества существующих типов данных логическое условие, по которому данные могут принадлежать к одному из указанных типов
  • Пересечение, позволяет рассматривать множество типов данных, как один

Что делает тип Record?

  • Создает тип объекта, ключами свойств которого являются Keys, а значениями свойств — Type. Эту утилиту можно использовать для отображения свойств одного типа на другой тип- https://www.dropbox.com/s/8dkakvsdkqvtv7n/RecordTypeScript.png?dl=0 пример

Как быстро сделать все свойства в интерфейсе опциональными?

  • используйте утилитный тип «Partial». Он создает тип со всеми свойствами Type, установленными как необязательные- Partial<myType>

Как сделать интерфейс не ограниченным по свойствам

https://www.dropbox.com/s/y7mckthdz0oc4d3/UnlimitedNumberOfPropertiesTS.png?dl=0

Что такое перечесления(enums) в TypeScript?

Перечисления — это функция, которая упрощает работу с именованными наборами констант. По умолчанию перечисление основано на числах, начиная с нуля, и каждому параметру присваивается приращение на единицу. Это полезно, когда значение не важно- Пример - https://www.dropbox.com/s/l88ttuf0v2s5usz/EnumInTypeScript.png?dl=0

Объяснить значение кортежей(tuples)

В TS- Tuple (Кортеж данных) - это последовательность значений- Особености: - Tuple объявляется с помощью TypeScript с определенным количеством элементов и указывает тип для каждого элементаlet myTuple: [dataType1, dataType2, dataTypeN] = [value1, value2, valueN] - Начальным значением должен быть массив с тем же количеством элементов, что и в описании типа

EnglishMoji!

Проблемы?

Problem

Пишите в Discord или телеграмм чат, а также подписывайтесь на наши новости

JavaScript Camp