首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性'data‘在'Promise<any>’类型中不存在

属性'data‘在'Promise<any>’类型中不存在
EN

Stack Overflow用户
提问于 2022-11-03 07:24:31
回答 1查看 133关注 0票数 -1

我试着打一个承诺。

Funcrion代码:

代码语言:javascript
复制
const getActivityLists = async () => {
        try {
            //let res: Promise<Item[]>
            let res: Promise<any>
            if (currentPlanValue !== null) {
                res = await getPlanActivityList(currentPlanValue.id)
            } else {
                res = await getActivitiesLists()
            }
            console.log(res)
            createCodesList(res.data) 
        } catch (error) {
            console.log(error)
        }
}

问题在于'res.data‘。

网络输出看起来像我需要的对象数组。

但是,如果我输出“res”到console,我有以下内容:

代码语言:javascript
复制
{

"data": [
    {
        "id": "f62b5c25-0d98-4b49-9706-8516875e5527",
        "name": "Стажировка 2",
        "description": "Как проходить стажировки",
        "archive": false,
        "activites": [
            {
                "directionId": "edf8c771-3b01-49c8-84a0-6cf4ed900370",
                "activeId": "62b4c56b-3863-4373-8255-3cca6e70d478",
                "order": 1,
                "name": "DKO"
            },
            {
                "directionId": "4765d688-bc40-4c4f-b039-2dc4b16d3b7c",
                "activeId": "cb11db28-d7eb-413a-9348-f253a113c137",
                "order": 2,
                "name": "STAZH"
            },
            {
                "directionId": "cd5bb29d-c17d-47cb-9a05-ae121c7958fc",
                "activeId": "fa547f06-b00a-49fa-b647-0186b8cd3931",
                "order": 3,
                "name": "REGION"
            }
        ],
        "createdAt": "2022-10-28T11:04:28.924Z",
        "updatedAt": "2022-10-28T11:04:28.947Z",
        "activeId": "27718a9e-706d-4e23-940b-dbd10da3c5b8",
        "userId": null,
        "historyId": null
    }
],
"status": 200,
"statusText": "OK",
"headers": {
    "content-length": "4584",
    "content-type": "application/json; charset=utf-8"
},
"config": {
    "transitional": {
        "silentJSONParsing": true,
        "forcedJSONParsing": true,
        "clarifyTimeoutError": false
    },
    "transformRequest": [
        null
    ],
    "transformResponse": [
        null
    ],
    "timeout": 0,
    "xsrfCookieName": "XSRF-TOKEN",
    "xsrfHeaderName": "X-XSRF-TOKEN",
    "maxContentLength": -1,
    "maxBodyLength": -1,
    "env": {
        "FormData": null
    },
    "headers": {
        "Accept": "application/json, text/plain, */*"
    },
    "method": "get",
    "url": "http://localhost:3000/activitesList/list"
},
"request": {} }

我的数组在'data‘中,所以我必须将res.data传递给函数'createCodesList’。

当我试图键入'res‘时,我会得到错误:属性'data’在‘诺言’类型上不存在

怎么修呢?

我不知道为什么承诺不起作用。“任何”意味着内在的承诺可以是任何东西,不是吗?但当然,在未来,我想键入'res‘我的oun类型Item[]。现在也不管用了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-03 07:28:51

您的响应类型是实际响应,而不是promise,因为您已经在等待结果,因此

代码语言:javascript
复制
 let res: Promise<any>

应改为

代码语言:javascript
复制
 let res: any

或将注释中的T.J.Crowder更改为实际响应类型。

代码语言:javascript
复制
let res:{data:any} //any should be replace with actual model and other properties should be added alongwith data
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74299317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档