;['keydown', 'submit'].forEach(event => {
// код
}) полагаю тоже решит проблему.['keydown', 'submit'] идёт что-то, что может принять ['keydown', 'submit'] как обращение к объекту по ключу 'submit'. func()
['keydown', 'submit'].forEach(event => { .. })это на самом деле: func()['keydown', 'submit'].forEach(event => { ... }) -> func() -> func().submit.forEach(event => { ... })
const getUser = async (email: string): Promise<UserDTO> говорит нам что из функции придёт объект обладающий полями UserDTO. UserModel обладает полями UserDTO? Обладает. Значит всё верно. Типы совместимы. Наличие всех полей UserDTO в UserModel гарантирует, что дальнейшая передача объекта в любые функции работающие с UserDTO не приведёт ни к каким ошибкам исполнения. В чём и есть задача typescript.
package.json отвечают за сборку да вызываете. yarn install, yarn build, и у себя в в package.json подключаете через {
...
"dependencies": {
...
"react-3d-cube": "file:../folder" // или "link:../folder"
}
}
'.what-we-do__li-1' будут другие элементы, то при наведении на них будет срабатывать mouseout, а потом всплывать mouseover потомка. Т.е. будет "дрыгаться". mouseenter\mouseleave учитывает только тот элемент на котором висят и не зависят от потомков.