TS中怎么约束函数返回值是promiss呢?
不是很会TS,请问返回值是一个promiss,怎么约束,谢谢
login(params).then((res) => {    return getInfo()
}).then((res) => {
    ...
})
回答:
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 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
以上是 TS中怎么约束函数返回值是promiss呢? 的全部内容, 来源链接: utcz.com/p/933827.html






