Size: a a a

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

2020 April 16

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Oleksandr Khotemskyi
это сложно, я бы глянул как ребята в либах вебсокетных типизируют такое
это просто)
источник

OK

Oleksandr Khotemskyi in TypeScript — русскоговорящее сообщество
Types guards я бы юзал, чтобы сразу в нужный обьект переводить. Еще можно глянуть assert в новых ts
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
В общем в ТС нет варианта нормального взять JSON.parse и типизировать то что из него выходит без any
источник

OK

Oleksandr Khotemskyi in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
В общем в ТС нет варианта нормального взять JSON.parse и типизировать то что из него выходит без any
угу, какие то лютые приседания будут с переборами ключей
источник

OK

Oleksandr Khotemskyi in TypeScript — русскоговорящее сообщество
const something = JSON.parse(response)
if (isMessage(something)) {
   // тут сузили тип до Message
} else if (isError(something)) {
   // ...
}
источник

KL

Kirill Leushkin in TypeScript — русскоговорящее сообщество
че сделать чтобы плейграунд не ругался? https://www.typescriptlang.org/play/#code/MYewdgzgLgBFCm0YF4YG0CMAaGAmHAzALoB0AlmMADYCuAJogBQECUQA
источник

DS

Denis ø Skiba in TypeScript — русскоговорящее сообщество
источник

KL

Kirill Leushkin in TypeScript — русскоговорящее сообщество
ну это мягко говоря странно что я не могу метод массива юзать, санкции какие то
источник

DS

Denis ø Skiba in TypeScript — русскоговорящее сообщество
Kirill Leushkin
ну это мягко говоря странно что я не могу метод массива юзать, санкции какие то
посмотри на настройки может https://github.com/Microsoft/TypeScript/issues/2340
источник

KL

Kirill Leushkin in TypeScript — русскоговорящее сообщество
ну то что конфиг надо править я тож загуглил, а в плейграунде как? в ишуях вроде писали надо к массиву lib добавить dom , а в плейграунде эт где
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
ребятки, я хочу в infer R отсечь вариант с undefined

у меня есть
Cases extends {
 [name: string]: (payload: S) => any | undefined
}


я хочу вернуть такой же тип, но при вывести тип возвращаемой функции и убрать undefined

{
 [K in keyof Cases]:
   Cases[K] extends (p: S) => infer R
     ? R
     : never;
}


что сюда дописать нужно?
источник

AS

Aleksandr Shtubov in TypeScript — русскоговорящее сообщество
Exclude<R, undefined> не?
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
🦉 ⁣
ребятки, я хочу в infer R отсечь вариант с undefined

у меня есть
Cases extends {
 [name: string]: (payload: S) => any | undefined
}


я хочу вернуть такой же тип, но при вывести тип возвращаемой функции и убрать undefined

{
 [K in keyof Cases]:
   Cases[K] extends (p: S) => infer R
     ? R
     : never;
}


что сюда дописать нужно?
{
 [K in keyof Cases]: Cases[K] extends (p: S) => infer R
   ? R extends undefined
     ? never
     : R
   : never;
}


хм
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Aleksandr Shtubov
Exclude<R, undefined> не?
да, так лучше, спасибо!
источник

DM

Denis Merioara in TypeScript — русскоговорящее сообщество
помогите кто знает как решить ?
источник

DM

Denis Merioara in TypeScript — русскоговорящее сообщество
как получить тип значения по ключу ?
источник

AS

Aleksandr Shtubov in TypeScript — русскоговорящее сообщество
Denis Merioara
как получить тип значения по ключу ?
возвращаемое значение фии get не keyof T[K], а T[K]
источник

DM

Denis Merioara in TypeScript — русскоговорящее сообщество
Aleksandr Shtubov
возвращаемое значение фии get не keyof T[K], а T[K]
супер, спасибо
источник

g

go quiet in TypeScript — русскоговорящее сообщество
всем привет!
подскажите, в тс можно указать свойства объекта регуляркой?
условно такое:

export interface UtmParams {
 [/^utm_[a-z]/]: string,
}
источник

EG

Egor Gorbachev in TypeScript — русскоговорящее сообщество
go quiet
всем привет!
подскажите, в тс можно указать свойства объекта регуляркой?
условно такое:

export interface UtmParams {
 [/^utm_[a-z]/]: string,
}
Нет. Есть генераторы ts-типов на основе JSON, если лень всё описывать: https://quicktype.io/typescript/
источник