Open HitoriSensei opened 3 years ago
When using @AssertType decoator on async methods, calling the method throws synchronously instead of returning rejected promise.
@AssertType
async
example:
@ValidateClass() export class MessageHandler { async handleMessage(@AssertType() body: { feedId: string }): Promise<void> { console.log(body); } } new MessageHandler() .handleMessage({ invalidMessage: 123 }) // error: throws synchronously here! .catch(e => { // …should be able to handle TypeGuardError here })
It would be perfect to make @AssertType aware of async keyword or Promise return type, but is it even possible?
Promise
I've done my research on decorators and metadata and prepared a PR addressing the issue: https://github.com/woutervh-/typescript-is/pull/105
When using
@AssertType
decoator onasync
methods, calling the method throws synchronously instead of returning rejected promise.example:
It would be perfect to make
@AssertType
aware ofasync
keyword orPromise
return type, but is it even possible?