From 8a4037d37bbe8e115e9b47ce24cfc085da3fdd63 Mon Sep 17 00:00:00 2001 From: Joshua Daniel Pratt Nielsen Date: Wed, 23 Sep 2020 00:00:46 +0200 Subject: [PATCH] feat: enhance isCError & isWError methods with type predicate This change allows the methods to act as [type guards](https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards). --- src/lib/cerror.ts | 2 +- src/lib/werror.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/cerror.ts b/src/lib/cerror.ts index d363528..cfae93a 100644 --- a/src/lib/cerror.ts +++ b/src/lib/cerror.ts @@ -106,7 +106,7 @@ export class CError extends Error { }; } - public static isCError(obj: unknown): boolean { + public static isCError(obj: unknown): obj is CError { return (obj as {[CERROR_SYMBOL]?: boolean})?.[CERROR_SYMBOL] != null; } diff --git a/src/lib/werror.ts b/src/lib/werror.ts index 22832bd..e5e35a5 100644 --- a/src/lib/werror.ts +++ b/src/lib/werror.ts @@ -14,7 +14,7 @@ export class WError extends CError { } } - public static isWError(obj: unknown): boolean { + public static isWError(obj: unknown): obj is WError { return (obj as { [WERROR_SYMBOL]?: boolean })?.[WERROR_SYMBOL] != null; } }