如何在 TypeScript 中保存来自 GET 响应的数据并访问它们?

How could I save data from GET response in TypeScript and access them?

我目前正在开发一个项目管理应用程序,我想动态显示来自 GET 请求的数据,但是我不知道该怎么做,这就是我的原因可以使用一些帮助,更有经验的人的见解。我想弄清楚如何存储然后从 GET 响应访问数据。

我的脚本:

export default {
setup() {

type Project = {
  title: string;
  author: string;
  description: string;
};

type GetProjectResponse = {
  data: Project[];
};



async function getProject() {
  try {
    const response = await fetch(
      'https://sill-api-app.herokuapp.com/api/project/622b1a17a900330b46af2203',
      {
        method: 'GET',
        headers: {
          Accept: 'application/json',
        },
      }
    );

    if (!response.ok) {
      throw new Error(`Error! status: ${response.status}`);
    }
    const result = (await response.json()) as GetProjectResponse;
    console.log(JSON.stringify(result, null, 4));
    return result;
  } catch (error) {
    if (error instanceof Error) {
      console.log('error message: ', error.message);
      return error.message;
    } else {
      console.log('unexpected error: ', error);
      return 'An unexpected error occurred';
    }
  }
}

void getProject();

console.log();

return {
  getProject,
};
},

name: 'singleProject',
};

该项目是在 Quasar(VueJS) 中完成的,我使用的是 typescript。此代码片段是我的视图的脚本部分。

你需要像这样的 fetch 函数包装:

    function api<T>(url: string): Promise<T> {
       return fetch(url).then(response => {
         if (!response.ok) {
           throw new Error(response.statusText)
        }
       return response.json<T>()
      })
    }


   api<Project >('v1/posts/1').then((projectData:Project) => {
    console.log(title, message)
   }).catch(error => {
   /* show error message */
   })