169 похожих чатов

Привет, подскажите пожалуйста, хочу сделать функцию, которая принимает объект и

изменяет его поля(сбрасывает), столкнулся с проблемой, что получаю ошибку мол Type 'string' is not assignable to type 'T[keyof T]'.
'T[keyof T]' could be instantiated with an arbitrary type which could be unrelated to 'string'.ts(2322)
Я то вроде смысл ошибки понимаю, но как ее решить?
export const resetAllFields = <T extends object>(obj: T) => {
Object.keys(obj).forEach((key) => {
if (typeof obj[key as keyof T] === 'string') {
obj[key as keyof T] = ''; <=== Error
}
});
return obj;
};

20 ответов

15 просмотров

Я человек простой - вижу forEach с return - ставлю минус

А зачем obj[key as keyof T], почему просто obj[key]?

Anton- Автор вопроса
Vadim
А зачем obj[key as keyof T], почему просто obj[key...

если просто тогда вот так: Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{}'. No index signature with a parameter of type 'string' was found on type '{}'

object замени на Record<string, any>

И после - можешь удалить if условия

Anton- Автор вопроса

Да, так и сделал, спасибо

Ууууу, как же мне не нравится это. Лучше бы возвращал новый объект...

Идель Гатауллин
Ууууу, как же мне не нравится это. Лучше бы возвра...

return obj если добавить, то вернет указатель на тот же объект

Идель Гатауллин
Ууууу, как же мне не нравится это. Лучше бы возвра...

Я понял, тебе лишь бы сказать, чё не нравится))0)

Идель Гатауллин
Object.fromEntries юзаешь после keys и нет проблем

Как лексему крутить мне всё равно, особенно с учетом инвариантов

Идель Гатауллин
Ууууу, как же мне не нравится это. Лучше бы возвра...

зачем? Может нужно очистить переданный объект, а не возваращать новый

kayr Султанбек
зачем? Может нужно очистить переданный объект, а н...

Например при дебаге такое будет работать в минус. Ибо нужна повторяемость процесса, а иначе - удачи ловить ошибки

kayr Султанбек
зачем? Может нужно очистить переданный объект, а н...

Даже обновленное апи на js выкатили - toSorted, toSpiced, toReversed, with

kayr Султанбек
зачем? Может нужно очистить переданный объект, а н...

Тем что мутировать аргументы функции это потенциальная дыра для багов.

Идель Гатауллин
object замени на Record<string, any>

Можно ещё вместе string юзнуть встроенный alias - PropertyKey

Эдмон
Можно ещё вместе string юзнуть встроенный alias - ...

Можно, но если только стринговые ключи(какие очень часто), лучше лишний раз ограничить. Надо будет - расширит

Эдмон
Можно ещё вместе string юзнуть встроенный alias - ...

Смысла нет, эти две записи идентичны.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта