Comments 14
В недостатки внесите так же возню с проставлением типов (порой совсем не тривиальную).
Огонь! Всё по полочкам.
Но меня бы сильно насторожил работодатель, который начал бы такой формальный опрос)
Спасибо за хороший обзорный материал;
однако же кое в чём есть сомнения.
Ещё в предыдущей статье встречались конструкции, образованные калькой с английского, но "изучение кривой" в этой части уже никак нельзя списать на то, что так случайно прочитали и запомнили как запомнили, ибо в таком виде невозможно *сделать смысл* из высказанного, *если вы понимаете, о чём я*.
К чему веду:
в тексте есть свидетельства составления на английском и неотсмотренного перевода, возможно, размещение переводного материала без тега (или нейротекста) — по коням!
Отличная подборка, автору благодарность.
В 7ом пункте задвоилось начало.
Не очень. Если материал именно про TS, то половину статьи можно удалить. Всё перемешано, вы часто тут представляете фичи JS как фичи TS. Да и иногда старый синтаксис используете (private vs #).
Вот с ходу в том, что описано в
9. Что такое модули в TypeScript?
10. Как вызвать конструктор базового класса из дочернего класса в TypeScript?
11. Что такое геттеры и сеттеры?
Это же вы по сути JS и описываете? Только в геттерах зачем-то пример с ключевым словом private, хотя пожно было обойтись более коротким #.
19. Какие Модификаторы Доступа Поддерживает TypeScript?
public, private, protected, readonly - ок, это именно из TS, но static тут причём? И почему тогда забыли про модификатор # ? Раз уж всё равно смешиваете оба языка.
28. Что такое декараторы?
Вы используете у себя депрекейтнутые декораторы TS? Иначе зачем про это вообще страшивать. Или тут всё таки про JS-декораторы говорится?
Про пункт отличия типов и интерфейсов
Реализация: Интерфейсы могут быть реализованы классами, в то время как типы не могут быть непосредственно реализованы.
Если речь про implements
, то типы могут быть реализованы в виде класса с некоторыми ограничениями.
Объединение типов: Типы могут быть объединены с помощью оператора
|
, что позволяет создавать объединение типов.
Объединение интерфейсов ничем не отличается от объединения типов, но на выходе, да, получится тип, вместо интерфейса.
Возможности: Интерфейсы обладают некоторыми дополнительными возможностями, такими как объявление методов и наследование интерфейсов.
Ничто не мешает объявить метод внутри типа.
Касательно наследования и расширения, из данного описания как-будто это суть одного и того же:
interface Foo {}
interface Bar extends Foo {}
Foo
расширяетBar
Bar
наследуетFoo
Но как и в случае с классами, интерфейс может быть расширен типом или унаследован от типа, с некоторыми ограничениями. Примеры.
В основное отличие я бы выделил возможность расширения одного и того же интерфейса, за счет множественного объявления. А дальше уже начинаются различные тонкости.
Ребят, сейчас активно изучаю TypeScript, как после всех основных пройденных тем как то закрепить знания? (Реакт например только база у меня)
Зарегистрировался только для того, чтобы написать: модификаторов доступа 3! Задолбали. Static и readonly НЕ модификаторы доступа. Это Другие модификаторы!
К списку типов, рядом с any, я бы добавил unknown.
Помню даже как то сращивали на собесе про разницу any и unknown.
Это на собеседование спрашивают? А мы задачки даем, что бы посмотреть как думает человек. А это вся теория бесполезна без опыта и практики. Человек может всем этим уметь пользоваться но не знаю как это называется
Хорошая статья, спасибо автору)
Вопросы и ответы для собеседования на позицию frontend-разработчик. Часть 2