Size: a a a

Software Design/Architecture/Zen

2021 November 23

SP

Stanislav Popov in Software Design/Architecture/Zen
ну тайпскрипт ужасный язык для таких штук
источник

E

Emanresun in Software Design/Architecture/Zen
почему?
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
потому что ему банально пришлось писать свой велосипедный Result который не дружит с остальной экосистемой
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
ну и там гварды, и тд
источник

E

Emanresun in Software Design/Architecture/Zen
номинативную типизацию можно как то через жопу симулировать вроде как
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
и это все не работает без тайпклассов и не-описательных типов
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
вот он прописал что у него APIResponse, но это не так. это всеголишь алиас, и это спалится при первом же использовании его вне функции
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
ему тогда нужно было определить его ньютайпом, и делать APIResponse_right(...)
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
а это еще больше копипасты
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
ну или писать везде as APIResponse, да
источник

E

Emanresun in Software Design/Architecture/Zen
а зачем?)
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
return right(ololo) as APIResponse<typeof ololo>
очень удобно
источник

E

Emanresun in Software Design/Architecture/Zen
а, ну понял вроде
источник

E

Emanresun in Software Design/Architecture/Zen
но он делает же return right(...)/left(...)
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
а, еще прикол тайпскрипта что он не сможет инфернуть Left если его нет как члена данных
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
да. оно работает потому что тип функции явно обьявлен, т.е. будет каст
источник

E

Emanresun in Software Design/Architecture/Zen
еп
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
а если он сделает
const a = right(...) то это не будет работать )
источник

E

Emanresun in Software Design/Architecture/Zen
понял, ты про вне обьявления и то что это просто альяс
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
ну или какимлибо способом получит этот обьект
источник