tsguard.macro

Babel macro that automatically generates type guards for a given type (WIP)

Usage no npm install needed!

<script type="module">
  import tsguardMacro from 'https://cdn.skypack.dev/tsguard.macro';
</script>

README

tsguard.macro - Typescript type guard macro

Babel macro that automatically generates type guards for a given type (very much WIP). You'll need to install generic-type-guards for this to work.

Roadmap

  • Implement tests
  • Support type references (e.g. typeGuard<IProps>)
  • Support tuples
  • Support mapped types
  • Support rest operator
  • Support index accessed types

Usage

import typeGuard from "tsguard.macro";

const unsafeValue = await fetch(someUrl).then(res => res.json());

if (typeGuard<{ name: string; value?: number }>(unsafeValue)) {
  const safeValue: { name: string; value?: number } = unsafeValue;
}