如何返回类的实例或Typescript中的错误

时间:2019-06-13 04:43:27

标签: typescript

我正在尝试打字稿和一个名为TypeORM的库,并为我的模型构建一些自定义存储库。

我的一个模型Buyer的{​​{1}}带有方法BuyerRepository

如果我希望此方法在保存成功的情况下返回createAndSave,或者在出现问题的情况下返回Buyer,那么我应该使用Error('some reason')吗?

我想我想做的事情类似于Go:throw new Error('buyer already exists')

1 个答案:

答案 0 :(得分:1)

最流行的方法是引发错误并捕获错误:

try {
   const res = await byuerRepo.createAndSave(...);
   console.log('buyer:' res)
} catch(e) {
  console.log(e)
}

您也可以使用简单的Promises:

byuerRepo.createAndSave(...)
.then(res => { 
   console.log('buyer:' res)
})
.catch(e) {
  console.log(e)
}

要实现类似于Go的功能: https://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/

或者,如果您喜欢FP,此库将非常有用: https://gcanti.github.io/fp-ts/modules/Either.ts.html