Я перевожу проект 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 для принудительной проверки типов в init, особенно если это зависит от некоторых реквизитов.
Спасибо за вашу помощь.