如何让TypeScript识别对象解构变量的数据类型?
正确给
todo声明类型的几种方法 你之前的写法不符合TypeScript语法规范,在解构赋值的别名位置不能直接用as进行类型断言。这里给你几种可行的解决方案:
1. 给useLazyAsyncData指定泛型(推荐)
这是最规范的做法,直接从数据源层面指定返回的data类型,解构出来的todo会自动继承该类型:
type ToDo = { id: number; title: string; completed: boolean; } const { data: todo, pending } = await useLazyAsyncData<ToDo>(...)
2. 对解构结果整体做类型断言
如果无法给函数添加泛型,也可以直接断言整个解构对象的类型:
const { data: todo, pending } = await useLazyAsyncData(...) as { data: ToDo; pending: boolean };
3. 解构后单独断言类型
先完成解构,再对变量单独做类型断言,适合临时处理的场景:
const { data: todo, pending } = await useLazyAsyncData(...); const typedTodo = todo as ToDo;
内容的提问来源于stack exchange,提问作者Alexxosipov
相关产品推荐
相关产品推荐

