diff --git a/packages/markers/src/common/marker.ts b/packages/markers/src/common/marker.ts index 4a5bf25f717bc..54b532450a4e4 100644 --- a/packages/markers/src/common/marker.ts +++ b/packages/markers/src/common/marker.ts @@ -40,14 +40,16 @@ export interface Marker { data: T; } export namespace Marker { - export function is(value: unknown): value is Marker; - export function is(value: unknown, subTypeCheck: (value: unknown) => value is T): value is Marker; - export function is(value: unknown, subTypeCheck?: (value: unknown) => boolean): boolean { - subTypeCheck ??= isObject; + + export function is(value: unknown, subTypeCheck: (value: unknown) => value is T): value is Marker { return isObject>(value) && !Array.isArray(value) && subTypeCheck(value.data) && isString(value.uri) && isString(value.owner); } + + export function isMarkerObject(value: unknown): value is Marker { + return is(value, isObject); + } } diff --git a/packages/markers/src/common/problem-marker.ts b/packages/markers/src/common/problem-marker.ts index a9e56a4efbecb..76fec1a8875c1 100644 --- a/packages/markers/src/common/problem-marker.ts +++ b/packages/markers/src/common/problem-marker.ts @@ -25,6 +25,6 @@ export interface ProblemMarker extends Marker { export namespace ProblemMarker { export function is(node: unknown): node is ProblemMarker { - return Marker.is(node) && node.kind === PROBLEM_KIND; + return Marker.isMarkerObject(node) && node.kind === PROBLEM_KIND; } }