You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript报错:Promise<wikiSummary>缺少wikiSummary类型属性如何解决?

错误原因与解决方法:Type 'Promise' 无法赋值给类型 'wikiSummary'

这个错误的核心原因很直接:所有async函数的返回值都会被自动包装成Promise类型,不管你在函数内部用await拿到了什么类型的值。

看你的代码:

async function getSummary(searchword: string) {
    try {
        const response: wikiSummary = await wiki.summary(searchword);
        return response; // 这里返回的是wikiSummary,但async函数会把它包装成Promise<wikiSummary>
    } catch (error) {
        console.log(error);
    }
}

你以为getSummary返回的是wikiSummary,但实际上它的真实返回类型是Promise<wikiSummary>。当你把它直接赋值给标注了wikiSummary类型的变量res时,类型不匹配,自然就报了那个错误——Promise对象里没有wikiSummary定义的那些属性(type、title等)。

解决方法有两种:

  1. 在async函数内部用await获取Promise的结果:
// 必须放在async函数里才能用await
async function init() {
  const res: wikiSummary = await getSummary(search);
  // 这里就可以正常使用res的属性了
}
init();
  1. 用.then()回调处理异步结果:
getSummary(search).then(res => {
  // 这里res自动推断为wikiSummary类型
  console.log(res.title);
});

你说移除类型注解就不报错,是因为TypeScript会自动把res的类型推断为Promise<wikiSummary>,和函数返回类型匹配了,所以不会报错——但这时候你直接用res.title还是会报错,因为Promise对象本身没有title属性,你还是得用await或.then()去取里面的实际值。

内容的提问来源于stack exchange,提问作者Recleun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:05:18