Понимаю, что в начале было сказано, что код Вы писали прямо во время написания статьи и не сильно проверяли на наличие ошибок. Но мне кажется, что все-таки стоило, т.к. неопытный глаз может не догнать некоторые моменты. Например, 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 NumberNamesEnum {
First = "first",
Second = "second",
Third = "third",
Fourth = "fourth",
Fifth = "fifth",
}
const numberNames: NumberNamesEnum[] = [
NumberNamesEnum.First,
NumberNamesEnum.Second,
NumberNamesEnum.Third,
NumberNamesEnum.Fourth,
NumberNamesEnum.Fifth,
];
И это все надо держать в актуальном состоянии, и потом чтоб использовать - импортировать везде. Но с другой стороны такое выглядит лучше задокументированным и в сравнении с моим решением не нужно голые строки везде использовать.
"Если бы мы не использовали
bind
, мы бы получилиundefined
вthis.name
при вызовеgreet
черезsetTimeout
."Тут можно было бы добавить пример, когда эта проблема решается с помощью стрелочной функции и bind не нужен.
Понимаю, что в начале было сказано, что код Вы писали прямо во время написания статьи и не сильно проверяли на наличие ошибок. Но мне кажется, что все-таки стоило, т.к. неопытный глаз может не догнать некоторые моменты. Например,
input.current
=>inputRef.current
Дополнительно отмечу, что в данной ситуации с получением значения из поля при
onSubmit
, реф не нужен. Достаточно вспомнить как черезevent
можно обратиться к самой форме, а через нее к ее полям.Да, в случае с объектом так и есть
Я гуглил и смотрел какой перевод у понятия type inference. Везде было "Вывод типов". Решил так и использовать, хотя может можно было что-то типа "Вычисление типа по массиву строковых значений".
Статья вышла в таком объёме, в каком я сам решил для аудитории тех, кто с таким подходом не знаком, с одной стороны стараясь не поливать воду, а с другой стараясь ничего не пропустить и простым языком дать объяснение.
Просто если расписывать разницу с enum, статья растянется и это изначально не являлось целью этой статьи.
С enum вот так например:
И это все надо держать в актуальном состоянии, и потом чтоб использовать - импортировать везде.
Но с другой стороны такое выглядит лучше задокументированным и в сравнении с моим решением не нужно голые строки везде использовать.
Я это делаю один раз на месте в массиве
Хорошая идея. Спасибо! Добавил инфу в пост.
Можно и enum, но я конкретно рассматривал решение с наименьшим количеством кода.
Ну и если массив в будущем будет дополняться, нам придется в enum еще лезть и дополнять все вручную.
Спасибо за разъяснение - так и есть, можно сделать и иными способами, но я конкретно рассматривал решение с наименьшим количеством кода.
Ну и если массив в будущем будет дополняться, неудобно же все вручную прописывать при помощи
enum
илиtype MyType ="first" | "second" | ...