Skip to main content

typeGuards

npm Package Size Security Scorecard CI

typeGuards exposes reusable runtime predicates that help you narrow unknown values safely.

import {typeGuards} from '@livon/schema';

interface MessagePayload {
author: string;
text: string;
}

const isMessagePayload = (input: unknown): input is MessagePayload =>
typeGuards.isRecord(input) &&
typeGuards.isString(input.author) &&
typeGuards.isString(input.text);

const parsePayload = (input: unknown): MessagePayload => {
if (!isMessagePayload(input)) {
throw new Error('Invalid payload');
}
return input;
};

Parameters

isMessagePayload(input):

  • input (unknown): value to narrow.

parsePayload(input):

  • input (unknown): runtime payload checked via type guards before returning typed value.

Available guards:

  • isString
  • isNumber
  • isBoolean
  • isDate
  • isUint8Array
  • isRecord
  • isArray