@typescript_ru

Страница 545 из 669
Дмитрий
15.03.2018
13:51:18
Даже байт типизированный не сделать

Mike
15.03.2018
13:52:54
а они таки сделали ReturnType

https://www.typescriptlang.org/play/#src=function%20testFunc(p%3A%20'n')%3A%20number%0D%0Afunction%20testFunc(p%3A%20's')%3A%20string%0D%0Afunction%20testFunc(p%3A%20any)%3A%20any%20%7B%20%0D%0A%0D%0A%7D%0D%0A%0D%0Alet%20ret1%20%3D%20(false%20as%20true)%20%26%26%20testFunc('n')%3B%0D%0Atype%20retNType%20%3D%20typeof%20ret1%3B%0D%0Alet%20ret2%20%3D%20(false%20as%20true)%20%26%26%20testFunc('s')%3B%0D%0Atype%20retSType%20%3D%20typeof%20ret2%3B

John
15.03.2018
13:56:22
ох, хорошо, что я даже не могу придумать кейса, в котором так нужно будет писать)

Google
Mike
15.03.2018
13:56:51
:)

John
15.03.2018
13:57:00
в силу незнания парадигм, в которых это можно применить

Mike
15.03.2018
13:58:34
на самом деле в нормлаьно ситуации тебе почти никогда это не надо. Но например во всяких мапперах может быть полезно

но как это записать в одну строку так и не придумал

John
15.03.2018
14:02:30
мне очень понравилась в typescript возможность писать мапу, в которой ключ определяет тип объекта, который лежит по этому ключу. и при этом еще определять какие именно ключи в эту мапу можно складывать. очень полезно вышло для redux такое использовать.

Mike
15.03.2018
14:02:52
да, генерики в принципе удобные

John
15.03.2018
14:02:59
vscode даже автодополняет при вызоые somemap.get('key')

и всё эторефакторится, и не нужно держать в голове тысячи значений всевозможных строк-ключей

ну вот как тут в общем, что бы не быть голословным https://stackoverflow.com/questions/43607652/typescript-immutable-proper-way-of-extending-immutable-map-type

после такого вообще не понимаю коллег js-ников, которые говорят что ts не нужен

и типизация - зло

сам я с Java. мне без этих типов вообще не возможно работать

Artur
15.03.2018
14:25:31
после такого вообще не понимаю коллег js-ников, которые говорят что ts не нужен
Ну pure js людям говнокодить сложно, вот и говорят что нинужен

Google
Artur
15.03.2018
14:26:20
А вообще, слышал типа аргументы - ну там же невозможно все случаи типами покрыть, а значит такое покрытие даёт нам только ложную уверенность в том, что код работает корректно. Так что пусть лучше не будет уверенности

Алексей
15.03.2018
14:40:39
А вообще, слышал типа аргументы - ну там же невозможно все случаи типами покрыть, а значит такое покрытие даёт нам только ложную уверенность в том, что код работает корректно. Так что пусть лучше не будет уверенности
Ну там же невозможно все случаи тестами покрыть, а значит такое покрытие даёт нам только ложную уверенность в том, что код работает корректно. Так что пусть лучше не будет уверенности и не будет тестов.

John
15.03.2018
14:44:18
Ну там же невозможно все случаи тестами покрыть, а значит такое покрытие даёт нам только ложную уверенность в том, что код работает корректно. Так что пусть лучше не будет уверенности и не будет тестов.
Ну там же невозможно все фичи покрыть кодом, а значит такое покрытие даёт нам только ложную уверенность в том, что код реализует все фичи. Так что пусть лучше не будет уверенности и не будет кода.

Алексей
15.03.2018
14:45:38
Ну там же невозможно все фичи покрыть кодом, а значит такое покрытие даёт нам только ложную уверенность в том, что код реализует все фичи. Так что пусть лучше не будет уверенности и не будет кода.
Ну там же невозможно все хотелки покрыть описанием в ТЗ, а значит такое покрытие даёт нам только ложную уверенность в том, что все хотелки будут реализованы. Так что пусть лучше не будет уверенности и не будет ТЗ.

Дмитрий
15.03.2018
14:46:26
Лучший код — которого нет

Дмитрий
15.03.2018
14:46:55
?

Artur
15.03.2018
14:47:38
https://medium.com/javascript-scene/you-might-not-need-typescript-or-static-types-aa7cb670a77b Ну вот например: "Type correctness does not guarantee program correctness."

Morsik
15.03.2018
14:47:48
Ну там же невозможно все хотелки покрыть зп, а значит такое покрытие даёт нам только ложную уверенность в том, что все хотелки будут реализованы. Так что пусть лучше не будет уверенности и не будет зп.

Дмитрий
15.03.2018
14:48:00
andretshurotshka?❄️кде
15.03.2018
14:48:27
Жсеры хотят верификацию??

Max
15.03.2018
14:49:41
“If you use both TDD and code reviews, very few type errors will escape into production.”

В эту фразу можно подставить все что угодно “XXX does not guarantee program correctness."

я не знаю TDD does not guarantee program correctness.

My mom does not guarantee program correctness.

Igor
15.03.2018
14:50:37
BUT MOOOOM

Max
15.03.2018
14:50:40
Shaworma does not guarantee program correctness.

Google
John
15.03.2018
14:54:25
My mom does not guarantee program correctness.
Guarantee program correctness does not guarantee program correctness

Max
15.03.2018
14:54:45
д

andretshurotshka?❄️кде
15.03.2018
14:55:08
Дмитрий
15.03.2018
14:57:49
summoning Kmett do guarantee program correctness

Дмитрий
15.03.2018
15:47:03
Ребята

Я себе голову сломал

https://www.typescriptlang.org/play/index.html#src=type%20C%3CS%2C%20P%3E%20%3D%20%7B%0D%0A%20%20arg%3A%20S%2C%0D%0A%20%20fn%3A%20(s%3A%20S)%20%3D%3E%20void%0D%0A%7D%20%7C%20%7B%0D%0A%20%20arg%3A%20S%2C%0D%0A%20%20t%3A%20(s%3A%20S)%20%3D%3E%20P%0D%0A%20%20fn%3A%20(s%3A%20P)%20%3D%3E%20void%0D%0A%7D%0D%0A%0D%0Adeclare%20const%20test%3A%20%3CS%2C%20P%3E(conf%3A%20C%3CS%2C%20P%3E)%20%3D%3E%20void%0D%0A%0D%0Atest(%7B%0D%0A%20%20arg%3A%20123%2C%0D%0A%20%20fn%3A%20s%20%3D%3E%20%7B%20s.toFixed()%20%7D%0D%0A%7D)%0D%0A%0D%0Atest(%7B%0D%0A%20%20arg%3A%20'1'%2C%0D%0A%20%20fn%3A%20s%20%3D%3E%20%7B%20s.toFixed()%20%7D%2C%0D%0A%20%20t%3A%20s%20%3D%3E%20%2Bs%0D%0A%7D)%0D%0A

Не понимаю, почему TS здесь отказывается выводить типы

Vladimir
15.03.2018
15:54:02
Потому что у тебя есть юнион

Он ломает вывод аргументов сразу

Дмитрий
15.03.2018
15:57:31
Это можно как-нибудь обойти?

думал о таком варианте, но тоже не то

https://www.typescriptlang.org/play/index.html#src=type%20A%3CS%3E%20%3D%20%7B%0D%0A%20%20%20%20arg%3A%20S%2C%0D%0A%20%20%20%20fn%3A%20(s%3A%20S)%20%3D%3E%20void%0D%0A%7D%0D%0A%0D%0Atype%20B%3CS%2C%20P%3E%20%3D%20%7B%0D%0A%20%20arg%3A%20S%2C%0D%0A%20%20t%3A%20(s%3A%20S)%20%3D%3E%20P%0D%0A%20%20fn%3A%20(s%3A%20P)%20%3D%3E%20void%0D%0A%7D%0D%0A%0D%0Adeclare%20function%20test%20%3CS%2C%20P%3E(conf%3A%20B%3CS%2C%20P%3E)%3A%20void%0D%0Adeclare%20function%20test%20%3CS%2C%20P%3E(conf%3A%20A%3CS%3E)%3A%20void%0D%0A%0D%0Atest(%7B%0D%0A%20%20arg%3A%20123%2C%0D%0A%20%20fn%3A%20s%20%3D%3E%20%7B%20s.toFixed()%20%7D%0D%0A%7D)%0D%0A%0D%0Atest(%7B%0D%0A%20%20arg%3A%20123%2C%0D%0A%20%20t%3A%20s%20%3D%3E%20%2Bs%2C%0D%0A%20%20fn%3A%20s%20%3D%3E%20%7B%20s.toFixed()%20%7D%0D%0A%7D)%0D%0A

Le
15.03.2018
16:18:46
так есть же великий и ужасный хак var variable = (false as true) && yourFunc(arg1, arg2);
я не очень читал дискуссию, но этот костыль уже не нужен, по крайней мере на ts@next

Дмитрий
15.03.2018
16:21:47
так у тебя нет информации о типе P
но она же должна вывестись из типа функции t

Le
15.03.2018
16:24:02
но она же должна вывестись из типа функции t
ну во-первых тебе нужны conditional types чтобы узнать возвращаемый тип

Google
Le
15.03.2018
16:24:26
они вроде как до сих пор в typescript@next

Дмитрий
15.03.2018
16:24:37
да, там

в апреле должно выйти вроде

или в марте уже

Le
15.03.2018
16:25:01
ну если готов щас идти на некст, то я могу попробовать

Дмитрий
15.03.2018
16:25:16
изи

Le
15.03.2018
16:25:21
ок

уф

что-то не могу

Дмитрий
15.03.2018
16:37:36
Возможно ли это ?

Le
15.03.2018
16:38:38
type Return<T> = T extends (...args: any[]) => infer R ? R : never; declare function test<T, U>(conf: { arg: T, t: U, fn: (s: Return<U>) => void }): void; test({ arg: '123', t: (s: string) => Number(s), fn: s => { s.toFixed(); } });

не получается без указания типа вон там

либо одно либо другое получается

anatolii
15.03.2018
16:43:44
Люди, а вы с типами как работаете: К примеру делаю запрос на внешнее апи, приходит жсон 1. сделать класс с подходящими данными, пусть разбирает этот жсон и работать с классом 2. сделать интерфейс под поля жсона и тупо с результатом работать как есть 3. ???

andretshurotshka?❄️кде
15.03.2018
16:44:03
2

Дмитрий
15.03.2018
16:44:05
4.PROFIT!

andretshurotshka?❄️кде
15.03.2018
16:44:18
А

И 1 тоже

anatolii
15.03.2018
16:44:27
У меня просто этих интерфейсов плодится капец

andretshurotshka?❄️кде
15.03.2018
16:44:36
Google
Le
15.03.2018
16:44:42
блин кондишонал странную вещь делает

andretshurotshka?❄️кде
15.03.2018
16:45:07
блин кондишонал странную вещь делает
Почему не добавить infer T ВЕЗДЕ

anatolii
15.03.2018
16:45:22
Интерфейсы выносите в отдельные файлы?

Все в один или для каждого отдельный?

Le
15.03.2018
16:45:47
andretshurotshka?❄️кде
15.03.2018
16:46:10
То есть не только в кондишенах

было бы норм

Le
15.03.2018
16:46:26
это к разработчикам тс вопрос уже

это шо баг

не понимаю

Max
15.03.2018
16:50:54
8 шакалов из 10

Le
15.03.2018
16:51:09
8 шакалов из 10
с телефона-то?

Max
15.03.2018
16:51:21
с лептопа!

Le
15.03.2018
16:51:33
у меня в телефоне шакалы

Max
15.03.2018
16:53:06
ааа

3310

Страница 545 из 669