Size: a a a

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

2020 March 31

fe

from earth in TypeScript — русскоговорящее сообщество
Как сделать в тс дженерик для ключа объекта?
Попробую пояснить, имеется функция типа receiveReponse('someName'), возвращающая объект с ключом someName, т.е. { someName: { ... } }

Хочется сделать интерфейс типа
interface Payload<T, Key> {
  [Key]: T
}
источник

fe

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

АГ

Алексей Гринько in TypeScript — русскоговорящее сообщество
from earth
Как на тс такое выразить?
Не совсем понял что именно вы делаете, посмотрите на Pick
источник

fe

from earth in TypeScript — русскоговорящее сообщество
Алексей Гринько
Не совсем понял что именно вы делаете, посмотрите на Pick
да я плоховато объяснил)
источник

a

artalar in TypeScript — русскоговорящее сообщество
from earth
Как сделать в тс дженерик для ключа объекта?
Попробую пояснить, имеется функция типа receiveReponse('someName'), возвращающая объект с ключом someName, т.е. { someName: { ... } }

Хочется сделать интерфейс типа
interface Payload<T, Key> {
  [Key]: T
}
interface Payload<T, Key> {
  [
K in Key]: T
}


Что за K? Можно написать любое слово туда, ну уот так уот 🤷
источник

fe

from earth in TypeScript — русскоговорящее сообщество
artalar
interface Payload<T, Key> {
  [
K in Key]: T
}


Что за K? Можно написать любое слово туда, ну уот так уот 🤷
in выглядит будто там много чего может быть
источник

a

artalar in TypeScript — русскоговорящее сообщество
from earth
in выглядит будто там много чего может быть
Не знаю как он выглядит, но работает как ты спрашивал)
источник

fe

from earth in TypeScript — русскоговорящее сообщество
artalar
interface Payload<T, Key> {
  [
K in Key]: T
}


Что за K? Можно написать любое слово туда, ну уот так уот 🤷
источник

a

artalar in TypeScript — русскоговорящее сообщество
Используй type
источник

fe

from earth in TypeScript — русскоговорящее сообщество
вот короче я хочу чтобы можно было тип создать так
interface User { name: string }

const list: ListPayload<User, 'users'> = ...; // имело бы структуру { payload: { users: [{ name: '...' }] } }
источник

fe

from earth in TypeScript — русскоговорящее сообщество
artalar
Используй type
ну-ка сейчас
источник

a

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

a

artalar in TypeScript — русскоговорящее сообщество
from earth
вот короче я хочу чтобы можно было тип создать так
interface User { name: string }

const list: ListPayload<User, 'users'> = ...; // имело бы структуру { payload: { users: [{ name: '...' }] } }
источник

fe

from earth in TypeScript — русскоговорящее сообщество
офигенно, спасибо большое
источник

fe

from earth in TypeScript — русскоговорящее сообщество
как можно додуматься до Key extends keyof any непонятно)
источник

fe

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

a

artalar in TypeScript — русскоговорящее сообщество
Читать исходники HOT (hight order types) либ
источник

fe

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

fe

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

fe

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