Поскольку полезно знать, что вы используете свойство объекта, а не необработанную строку, поскольку необработанные строки подвержены опечаткам. Возьмите свой пример:
export function itemsAction(items) {
return {
type: 'ITEMS',
data: items
}
}
Теперь, допустим, у меня есть редуктор для обработки этого действия, который также использует необработанную строку:
const todos = (state = [], action) => {
switch (action.type) {
case 'ITESM':
return state.map(item => item.something = "potato")
default:
return state
}
}
В редукторе я неправильно написал тип действия для его случая. Но из-за того, как работают Javascript и Redux, он не будет замечен как ошибка в вашей привязке IDE, а также не вызовет ошибок при выполнении кода. Вы отправите действие, и оно молча провалится. Ничего не будет, никаких действий, никаких ошибок, ничего. Это может быть проблемой для отладки.
Кроме того, что делать, если вы хотите изменить название действия. Хорошо просто изменить значение объекта, а не искать и заменять весь свой проект, надеясь, что в процессе вы не перезаписаете то, что не хотели.
Кроме того, приятно иметь все типы действий в одном месте, чтобы вы могли просмотреть и просмотреть все имеющиеся у вас возможности, а не просматривать все файлы действий. Как только ваш проект расширится, вы будете рады, что сделали это.
Кроме того, в Typescript это особенно полезно, поскольку если вы попытаетесь использовать действие, которое вы не определили, оно даже не будет выполнено, поэтому вы получите некоторую безопасность во время сборки.