export interface ICustomTableCellProps {
contact: IUser;
cellData: keyof IUser;
onChange: Function;
}
Должны приходить строка или число (name, lastname, age, pager)
contact[cellData]
, то cellData
очевидно может принимать только значения ключей contact
, а contact
- это IUser
... React.ComponentProps<typeof ForeignComponent>
и т.д. и т.п. return
поставьте if(!gif) return null;
и станет лучше.)undefined
, попытка получения свойства у undefined
(gif.<some>
) - очевидная ошибка. object
в современном ts занчит просто {}
без всяких свойств. Если вам нужен любой объект с любыми свойствами, то используйте Record<string, any>
. Однако по хорошему никаких any
быть не должно, вам следует чётко описать структуру получаемого объекта.useOnScreen
- это нестандартных хук. Реализаций в гугле полно разных. Так что приведите его код и скажите, что вы хотите от него добиться. useEffect
сам по себе только запускается уже после рендера. const [todos, setTodos] = useState([]);
. {todos ? <TodoList todos={todos}/> : <LoadingComponent/>}
Сначала покажет какой-нить спиннер, потом подгруженный список. PropsWithChildren<Props>
. Но под капотом он просто делает так: type PropsWithChildren<P> = P & { children?: ReactNode };
type TwitterProps = {
children: (user: string) => ReactNode
}
const response: ITwitter = ...
. Только если какая-нить хрень прилетит то может сломаться в рантайме, так что либо ты доверяешь серверу, либо используешь какую-нить либу для дополнительной проверки вживую.) forEach
- синхронный. Либо используйте либы умеющие в асинхронный forEach, либо используйте обычные циклы:export const setGenderThunk = (gender, login) => {
return async dispatch => {
const users = await getUsers || []; // там внутри fetch
for(let user of users) {
if(user.login === login) {
const user_ = { ...user, gender: gender };
await setUser(user_, user.id); // там тоже внутри fetch
debugger
if(result.ok) {
dispatch(setGenderAC(user_.gender));
}
}
};
}
}
forEach
отрабатывает всё равно синхрнно, но при этом единовременно плодит множество асинхронных функций выполняющихся параллельно (которых, само собой, никто не ждёт).