Я переношу проект React с TypeScript для использования функций перехватчиков (React v16.7.0-alpha), но я не могу понять, как установить типизацию деструктурированных элементов.
Вот пример:
interface IUser {
name: string;
}
...
const [user, setUser] = useState({name: 'Jon'});
Я хочу, чтобы user
переменная была типа IUser
. Мое единственное успешное испытание состоит из двух этапов: ввод, затем инициализация:
let user: IUser;
let setUser: any;
[user, setUser] = useState({name: 'Jon'});
Но я уверен, что есть способ получше. Кроме того, она setUser
должна быть инициализирована как функция, которая принимает в IUser
качестве входных данных и ничего не возвращает.
Также стоит отметить, что использование const [user, setUser] = useState({name: 'Jon'});
без какой-либо инициализации работает нормально, но я хотел бы воспользоваться преимуществом TypeScript для принудительной проверки типов при инициализации, особенно если это зависит от некоторых свойств.
Спасибо за вашу помощь.