aint
A collection of common runtime predicates that TypeScript actually understands.Features
- Simple API;
- Extensive tests;
- Isomorphic library, works on the browser or Node.js.
Installation
npm install aint
Requirements
- Node.js v.14+
Quick start
import { isNotNull } from 'aint';
// given an array containing null and number values
const array = [1, 2, null]; // ts infers Array<null | number>
// ...remove null values by using isNotNull
const arrayWithoutNull = array.filter(isNotNull); // ts infers Array<number>
API
Motivation
It's easy to perform a check using lodash or vanilla JavaScript, e.g.const array = [1, 2, null].filter(Boolean);
The example above will filter out the
null
value as expected (because null
is considered to be faulty).However, TypeScript will NOT infer the correct type playground link. It will understand the type of array as being
Array<null | number>
instead of Array<number>
.aint
provides a simple API to test for predicates, while making TypeScript understand.