Примечания типа не могут быть размещены в операциях деструктурирования, символ :
уже используется там как способ присвоения разрушаемого свойства новому имени.
const { person: p2 } = { person: "Name" }
p2 === "Name" // true
Вы можете заменить any
с типом, который вы ожидаете от useContext
.
const { data: { person, car, another } }: { data: { person: Person, car: Car, another: Another } }
= useContext(MyContext);
Но в идеале тип возврата useContext
должен быть выведен из передаваемого ему параметра, когда вы создаете контекст, вы должны иметьстрока типа:
type ContextType = {data: {person: Person, car: Car, another: Another}}
const MyContext = createContext<ContextType>({/* default value */})
Когда вы затем используете useContext
, возвращаемое значение уже будет иметь ContextType
, и ваша деструктуризация будет набираться без каких-либо аннотаций типов.