Search
Write a publication
Pull to refresh
6
0
Send message

"Если бы мы не использовали bind, мы бы получили undefined в this.name при вызове greet через setTimeout."

Тут можно было бы добавить пример, когда эта проблема решается с помощью стрелочной функции и bind не нужен.

Понимаю, что в начале было сказано, что код Вы писали прямо во время написания статьи и не сильно проверяли на наличие ошибок. Но мне кажется, что все-таки стоило, т.к. неопытный глаз может не догнать некоторые моменты. Например, input.current => inputRef.current

Дополнительно отмечу, что в данной ситуации с получением значения из поля при onSubmit, реф не нужен. Достаточно вспомнить как через event можно обратиться к самой форме, а через нее к ее полям.

const onSubmit = function (e) {
  console.log(e.target[0].value); // при условии, что данный input стоит первым внутри тега form
  console.log(e.target.title.value); // при условии, что <input name="title" />
}

Я гуглил и смотрел какой перевод у понятия type inference. Везде было "Вывод типов". Решил так и использовать, хотя может можно было что-то типа "Вычисление типа по массиву строковых значений".

Статья вышла в таком объёме, в каком я сам решил для аудитории тех, кто с таким подходом не знаком, с одной стороны стараясь не поливать воду, а с другой стараясь ничего не пропустить и простым языком дать объяснение.

Просто если расписывать разницу с enum, статья растянется и это изначально не являлось целью этой статьи.

С enum вот так например:

enum NumberNamesEnum {
  First = "first", 
  Second = "second", 
  Third = "third", 
  Fourth = "fourth", 
  Fifth = "fifth", 
}

const numberNames: NumberNamesEnum[] = [
  NumberNamesEnum.First, 
  NumberNamesEnum.Second, 
  NumberNamesEnum.Third, 
  NumberNamesEnum.Fourth, 
  NumberNamesEnum.Fifth, 
];

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

Я это делаю один раз на месте в массиве

Хорошая идея. Спасибо! Добавил инфу в пост.

Можно и enum, но я конкретно рассматривал решение с наименьшим количеством кода.

Ну и если массив в будущем будет дополняться, нам придется в enum еще лезть и дополнять все вручную.

Спасибо за разъяснение - так и есть, можно сделать и иными способами, но я конкретно рассматривал решение с наименьшим количеством кода.

Ну и если массив в будущем будет дополняться, неудобно же все вручную прописывать при помощи enum или type MyType ="first" | "second" | ...

Information

Rating
Does not participate
Registered
Activity

Specialization

Frontend Developer
JavaScript
HTML
CSS
React
Node.js
TypeScript
Redux
NextJS
Jest
React Native