type

Simple type inference for javascript runtimes

Usage

import { Type, type } from "https://deno.land/x/type/mod.ts";

const value: unknown = BigInt(100);
const [t, v] = type(value); // [Type.BigInt, bigint]

Additionally, each type has an is{Type}, assert{Type}, and assert{Type}Type helper function available.

import { type } from "https://deno.land/x/type/mod.ts";
import {
  assertBigInt,
  assertBigIntType,
  isBigInt,
} from "https://deno.land/x/type/src/bigint.ts";

const [t, v] = type(BigInt(100));
isBigInt(v); // true
assertBigInt(v); // void
assertBigIntType(t); // void

Type Map

value type as
[] Type.Array unknown[]
BigInt(100) Type.BigInt bigint
true|false Type.Boolean boolean
new Error() Type.Error Error
() => {} Type.Function Function
null Type.Null null
1.23 Type.Number number
{} Type.Object Record<string, unknown>
"" Type.String string
Symbol() Type.Symbol symbol
undefined Type.Undefined undefined