
Дмитрий
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

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
Лучший код — которого нет

andretshurotshka?❄️кде
15.03.2018
14:46:31
Cobol?

Дмитрий
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
Ну там же невозможно все хотелки покрыть зп, а значит такое покрытие даёт нам только ложную уверенность в том, что все хотелки будут реализованы. Так что пусть лучше не будет уверенности и не будет зп.

andretshurotshka?❄️кде
15.03.2018
14:47:56

Дмитрий
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

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

Дмитрий
15.03.2018
16:19:44


Le
15.03.2018
16:21:19
а, вон че

Дмитрий
15.03.2018
16:21:47

Le
15.03.2018
16:24:02

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

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

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

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

Max
15.03.2018
16:53:06
ааа
3310