Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 March 24

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
И архитектурой рулим через описанием абстакции в типах, а потом написаний реализаций под них. Это тс умеет.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
opaque type гарантирует что в условный тип ValidatedUser (который мы провалидировали по своим критериям), нельзя будет просто  присвоить объект с такой же структурой (привет структурной типизации)
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
т.е. я не могу написать const user: ValidatedUser = { ..., ... }
только через вызов конкретной функции в конкретном модуле, которая умеет генерировать тип ValidatedUser
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
это как-раз таки type safety :)
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
т.е. я не могу написать const user: ValidatedUser = { ..., ... }
только через вызов конкретной функции в конкретном модуле, которая умеет генерировать тип ValidatedUser
а в функции как тип генерируется?
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
opaque type гарантирует что в условный тип ValidatedUser (который мы провалидировали по своим критериям), нельзя будет просто  присвоить объект с такой же структурой (привет структурной типизации)
Ну да меня это тоже немного шокирует, но разве так много кейсов для этой проблемы.
источник

S

Susa in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
opaque type гарантирует что в условный тип ValidatedUser (который мы провалидировали по своим критериям), нельзя будет просто  присвоить объект с такой же структурой (привет структурной типизации)
После этого я пошел покупать билеты)
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Я думаю тс это потерял где то рядом с runtime checking
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
Ну да меня это тоже немного шокирует, но разве так много кейсов для этой проблемы.
когда у вас "большая кодовая база" (а ведь мы говорим что тайпскрипт мега полезен), вы хотите все, что может проконтролировать система типов - чтобы она проверяла
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
и обратите внимание - это ни разу не про рантайм
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
речь идет о механизме позволяющим закрывать "конструктор типа" от своевольного использования - только конкретные функции могут порождать нужный тип
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
при этом сам тип остается доступен
источник

S

Susa in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
когда у вас "большая кодовая база" (а ведь мы говорим что тайпскрипт мега полезен), вы хотите все, что может проконтролировать система типов - чтобы она проверяла
"Why I left TypeScript in my React projects and where" будет про js связке с другим языком?
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
и обратите внимание - это ни разу не про рантайм
Да это из за того, что тс решил сохранить структурную типизацию.
В обратном бы случае получился бы наверное совершенно другой язык, который не похож на js.
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
речь идет о механизме позволяющим закрывать "конструктор типа" от своевольного использования - только конкретные функции могут порождать нужный тип
а можете привести пример языка где это реализовано? а то я чет вспонмить не могу))
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Nikita
а можете привести пример языка где это реализовано? а то я чет вспонмить не могу))
OCaml, Swift, Scala
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
это то где я их юзал
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
наверняка их сильно больше
источник

P

Plutoject in NodeUA - JavaScript and Node.js in Ukraine
@xanf_ua на счет автокомплита. Я например не могу из-за него слезть с продуктов jetbrains в сторону vscode вот только из-за этого. И как бы я не пытался это исправить в том числе и табнайном все равно у idea он более точен. Я даже когда ваши лайвы смотрю и вижу как вы из тысячи функции в проекте набираете  функцию из 3 слов целиком то у меня вроде как боль.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
А я ж никого и не призываю )
источник