Size: a a a

TypeScript — русскоговорящее сообщество

2020 March 24

TG

Timofey Goncharov in TypeScript — русскоговорящее сообщество
Pavel Shakhov (pongo)
а если Theme — это конструктор объектов, но не класс, а функция?
если Theme это функция - то 100% она предназначена для создания экземпляров, а значит это по сути класс. и в любом случае ты его будешь использовать как new Theme или Theme()
источник

PS

Pavel Shakhov (pongo) in TypeScript — русскоговорящее сообщество
Timofey Goncharov
если Theme это функция - то 100% она предназначена для создания экземпляров, а значит это по сути класс. и в любом случае ты его будешь использовать как new Theme или Theme()
а как ты заранее поймешь нужен там new или нет
источник

AK

Andrey Kurnoskin in TypeScript — русскоговорящее сообщество
Pavel Shakhov (pongo)
а как ты заранее поймешь нужен там new или нет
Префикс Ctor, конечно же
источник

TG

Timofey Goncharov in TypeScript — русскоговорящее сообщество
Pavel Shakhov (pongo)
а как ты заранее поймешь нужен там new или нет
никак не поймешь. но лично я если и сталкиваюсь с таким, то 1 раз в год. а вот мой описанный выше кейс - повсеместен
источник

PS

Pavel Shakhov (pongo) in TypeScript — русскоговорящее сообщество
Timofey Goncharov
вот ты работаешь с чужим файлом и он тебе предоставляет Theme.
у тебя нет не единого шанса понять для чего он нужен.
но если у вас на проекте линтер побуждает ставить префикс I или T. то получив Theme ты будешь уверен что это class и из него нужно создавать экземпляры.
если функция возвращает Theme, то это экземпляр класса, а не сам класс.

а если ты импортируешь Theme, то ты как бы и так знаешь что это такое и какие у него возможности.
источник

TG

Timofey Goncharov in TypeScript — русскоговорящее сообщество
Pavel Shakhov (pongo)
если функция возвращает Theme, то это экземпляр класса, а не сам класс.

а если ты импортируешь Theme, то ты как бы и так знаешь что это такое и какие у него возможности.
не знаю)
источник
2020 March 25

A

Alxndr 🗽👇 in TypeScript — русскоговорящее сообщество
Ребята, а как вы маппите джейсоны в структуры? Способы в статьях просто вырвиглазные, неужели все так плохо? Норм вариантом теперь кажется использовать json-schema и валидировать их, что бы хоть как-то гарантировать правильные типы после парсинга джейсона в модель
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Alxndr 🗽👇
Ребята, а как вы маппите джейсоны в структуры? Способы в статьях просто вырвиглазные, неужели все так плохо? Норм вариантом теперь кажется использовать json-schema и валидировать их, что бы хоть как-то гарантировать правильные типы после парсинга джейсона в модель
Можно описывать в runtypes и им же проверять
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Стандартного способа вроде нет
источник

A

Alxndr 🗽👇 in TypeScript — русскоговорящее сообщество
спасибо, посмотрю
источник

A

Alxndr 🗽👇 in TypeScript — русскоговорящее сообщество
Руслан Фадеев
Можно описывать в runtypes и им же проверять
что-то странное, читаю базовый пример, оп уже про изобретенный в рамках библиотеки паттернматчинг, к чему это вообще
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Библиотека - не для валидации, а для представления типов в рантайме. Но валидацию с её помощью делать просто
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
На самом деле не знаю, какие ещё кейсы бывают, кроме валидации
источник

A

Alxndr 🗽👇 in TypeScript — русскоговорящее сообщество
Ну надо посмотреть, просто бегло глянул, там самому их описывать, как-то бы нагенерить схемы или провалидировать по типу/интерфейсу, но тк типов в рантайме нет, видимо все сложнее
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Exhaustive pattern matching без типов в рантайме тоже не сделать. Возможно, поэтому он есть в библиотеке
источник

A

Alxndr 🗽👇 in TypeScript — русскоговорящее сообщество
я что-то год на тсе не писал, но баловался свифтом в свободное время, что-то больновато
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Alxndr 🗽👇
Ну надо посмотреть, просто бегло глянул, там самому их описывать, как-то бы нагенерить схемы или провалидировать по типу/интерфейсу, но тк типов в рантайме нет, видимо все сложнее
Идея в том, чтобы описать рантайп один раз, а из него получить и обычный тип, и валидацию
источник

A

Alxndr 🗽👇 in TypeScript — русскоговорящее сообщество
Руслан Фадеев
Идея в том, чтобы описать рантайп один раз, а из него получить и обычный тип, и валидацию
спасибо
источник

A

Alxndr 🗽👇 in TypeScript — русскоговорящее сообщество
а что насчет io-ts?
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Примерно то же
источник