小编Gip*_*hoi的帖子

如何让打字稿将 Promise<T> 视为 Type T

我是打字稿的新手,我正在创建一些东西并面临着使用 javascript 时从未发生过的问题。

假设我们有async返回的函数Promise<ResultSet>

interface ResultSet {
  status: number; // 0 for success 1 for failure
  data?: any;
}

const getDataFromServer = async (parameter: string): Promise<ResultSet> => {
   const response = await fetch(<--Prameters-->);
   return await response.json();
}
Run Code Online (Sandbox Code Playgroud)

它始终将其值返回为Promise

并且它需要连接到接口以便某些模块可以使用它。它将使用上面的请求更改全局变量的值。并需要返回操作结果(成功或失败代码)。它是在很多地方使用的行动的结果。

const storeData = async (parameter: string): number => {
  const result = await getDataFromServer(parameter);
  if (result.status == 0) {
    SOME_GLOBAL_VARIABLE.setState({ data: result.data });
  }
  return result.status;
}
Run Code Online (Sandbox Code Playgroud)

正如您所期望的,上面的函数定义在附近弹出一个错误,async (parameter: string): number因为函数必须返回 Promise,因为它是async函数。所以它需要在下面, …

asynchronous promise typescript

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

asynchronous ×1

promise ×1

typescript ×1