TS中怎么约束函数返回值是promiss呢?

不是很会TS,请问返回值是一个promiss,怎么约束,谢谢

login(params).then((res) => {
    return getInfo()
}).then((res) => {
    ...
})
阅读 2.5k
3 个回答
const getUser = () => {
  return new Promise<number>((resolve) => {
    resolve(111);
  })
}
const login = () => {
  return new Promise<string>((resolve) => {
    resolve('111');
  })
}

login()
  .then((res) =>{
    // 如果要推断出promise就 return getUser;
    return getUser();
  })
  .then(res => {
    // res就推断出来是number了
  })

// 约束返回值必须是Promise类型

function getInfo<T = unknown>(): Promise<T> {
  const info = login(params).then((res) => {
    return getInfo()
  })
  
  return info;
}

// 知道是Promise类型就可以使用then方法

getInfo<number>().then((result) => {
    console.log(result.toString())
})
// 方式一
function getData(): Promise<string> {
  return new Promise((resolve, reject) => {
    resolve("hello world");
  });
}
// 方式二
async function getData2() {
  return "hello world";
}
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
推荐问题
logo
Microsoft
子站问答
访问
宣传栏