Как стать автором
Обновить

Комментарии 4

Полезная статья, но последний пример, как мне видится, переусложнен. Проще сделать так:

```

type ConfigType = typeof initialConfig;

const setConfig = <K extends keyof ConfigType, V extends ConfigType[K]>(param: K, value: V) => {
...
}
```
Пруф: https://bit.ly/3sIF7wW

Спасибо, ваше решение значительно лучше выглядит. Мой код навеян реальным кейсом, когда функция находится в составе коллекции мутаторов и её неудобно типизировать всю (иначе понадобилось писать тип всему mutators). Кроме того хотелось бы рассмотреть более редкий случай типизации аргументов.

Приятно узнавать, что люди прорабатывают код примеров. В вашем я решил уменьшить размер дженерика

<K extends keyof ConfigType>(param: K, value: ConfigType[K]) => { ... }

Отлично! :)

Как вижу, всегда есть вариант сделать лучше и лаконичнее.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации