Size: a a a

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

2020 March 31

fe

from earth in TypeScript — русскоговорящее сообщество
источник

fe

from earth in TypeScript — русскоговорящее сообщество
@artalar нид хелп :)
если typeof key написать то разрешит по любому ключу обращаться :/
источник

fe

from earth in TypeScript — русскоговорящее сообщество
а хочется чтобы можно было только через data.payload[key]
источник

fe

from earth in TypeScript — русскоговорящее сообщество
чтобы было понятнее там receive это дженерик:
function receive<T>(key: string, data: ListPayload<T, key>) {
 const res = data.payload.qweq; // should warn
}
источник

a

artalar in TypeScript — русскоговорящее сообщество
у тебя key не string должен быть, а дженерик
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
interface ListPayload<T, Key extends string> {
 payload: Record<Key, T[]>
}
источник

a

artalar in TypeScript — русскоговорящее сообщество
receive<T, K extends string>(key: K, data: ListPayload<T, K>)
источник

fe

from earth in TypeScript — русскоговорящее сообщество
artalar
receive<T, K extends string>(key: K, data: ListPayload<T, K>)
ага походу
источник

fe

from earth in TypeScript — русскоговорящее сообщество
ща
источник

a

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

fe

from earth in TypeScript — русскоговорящее сообщество
artalar
receive<T, K extends string>(key: K, data: ListPayload<T, K>)
Но так дублировать значит придётся...
источник

a

artalar in TypeScript — русскоговорящее сообщество
from earth
Но так дублировать значит придётся...
не понял
источник

fe

from earth in TypeScript — русскоговорящее сообщество
const res = receive<User, 'users'>('users', {})
источник

a

artalar in TypeScript — русскоговорящее сообщество
from earth
const res = receive<User, 'users'>('users', {})
А зачем тебе указывать дженерики вообще?
источник

a

artalar in TypeScript — русскоговорящее сообщество
receive('users', {} as User)
источник

fe

from earth in TypeScript — русскоговорящее сообщество
🤔
источник

a

artalar in TypeScript — русскоговорящее сообщество
Посмотри вот сюда, там похожий кейс - и я описал утилитарную функцию дженериками, но использую ее не указывая типы вообще - а они выводятся
источник

И

Илья in TypeScript — русскоговорящее сообщество
Подскажите, что написать в <T extends ...> чтобы указать, что возвращается поле объекта, то есть Foo | Bar?
источник

И

Илья in TypeScript — русскоговорящее сообщество
Ошибка
источник

a

artalar in TypeScript — русскоговорящее сообщество
Илья
Подскажите, что написать в <T extends ...> чтобы указать, что возвращается поле объекта, то есть Foo | Bar?
: Data[keyof Data]
источник