let key: keyof EventStatusType;
for (key in eventTypes) {
Typescript не может автоматически вывести тип key
потому что он структурный, и никак не может знать, что в объекте точно нет ещё каких-нибудь ключей, кроме тех что указаны в типе EventStatusType
: const foo = {
Closed: false,
Maintaince: false,
Open: false,
внезапно: 'Вася'
};
const bar: EventStatusType = foo; // ok
Поскольку с помощью кода в начале ты фактически говоришь Typescript: "я знаю лучше, там точно не будет ничего другого", то на всякий непредвиденный случай следует добавить в switch
default
который что-то сделает(например кинет ошибку) если таки лишний неведомый ключ прилетит.Maintaince
и Maintenance
. const PeoplePageWithErrorApi = WithErrorApi(PeoplePage)
<PeoplePageWithErrorApi foo="bar">
// props = {foo: bar}
// внутри PeoplePage props {
// foo: 'bar',
// setErrorApi: setErrorApi из WithErrorApi,
// setLoader: setLoader из WithErrorApi,
// isLoading: isLoading из WithErrorApi
//}
UserProfile
у вас не memo
, а значит обновляется всегда когда хоть что-то обновилось в родителе.UserProfile
рендерится.customizeProfile
.customizeProfile
диспатчит обновление profile
в redux
.profile
в redux
поменялось - вызывается обновление связанного с ним UserProfileContainer
.const r = require.context('./images/', false, /\.png$/);
const imagesMap = Object.fromEntries(r.keys().map((key) => [key, r(key)]));
console.log(imagesMap);