Комментарии 2
TS это мейнстримный язык программирования с довольно низким уровнем входа. И ему уже 10 лет -- для того, чтобы рассказать про него статья уже сильно запоздала.
Статья ни про TS, ни про ООП, ни про паттерны.
Очень тяжело читать подстрочный перевод. К тому же смысл некоторых предложений отличается от оригинала. Так в переводе:
Один из способов отменить это дизайнерское решение - обернуть интерфейс вокруг
Required<Todo>
, что делает все свойства необязательными.
Смотрим в оригинале:
One way to revert this design decision is to wrap the interface around
Required<Todo>
, which makes all properties non-optional.
Т.е. наоборотRequired
делает все свойства обязатными (что в общем то логично исходя из названия типа). Вот еще пример в переводе:
Однако компилятор предоставляет JS'у конструкции, подобные доступу к скрытому свойству. Вы можете использовать жесткий приватный
#
для поддержания приватных полей.
Тут вообще смысл написанного ускользает. Обратимся к оригиналу:
However, the compiler gives JavaScript runtime constructs like
in
access to the hidden property. can use the hard private#
to maintain private fields.
Т.е. автор имел в виду что несмотря на то, что поле объекта приватное, конструкция JS in
все равно будет иметь доступ к нему (чего я, кстати, не знал). Чтобы этого не происходило, можно использовать #
.
Далее по тексту еще несколько неточностей и калькирования английской грамматики. Но все равно спасибо за статью. Оригинал прочитал с интересом.
Принципы ООП в TypeScript