Data> {
(name: T, value: Data[T]): void;
}
только без дженерика? потому что иначе нужно писать при использовании вот так setValue<keyof Data>
interface setValue<T extends Data, K extends keyof T> { (name: K, value: T[K]): void; } ??
я не совсем понял как это может помочь, мне нужно протипизировать setValue = (name, value) => { window.localStorage.setItem(this.email, JSON.stringify({...this.data, [name]: value})); } у this.data есть конкретный тип и соответственно name принадлежит ключу этого типа.
setValue: setValue<Data, keyof Data> = (name, value) => { window.localStorage.setItem(this.email, JSON.stringify({...this.data, [name]: value})); } вот с вашим типом у value получился тип stirng | ... , то есть ts просто через union бахнул все типы который есть в Data. Я так понимаю более точного способа задать тип, чтобы мне тс подсказывал что в этот ключик надо класть строку, а в этот ключик число, не сущетсвует?
Обсуждают сегодня