A collection of common runtime predicates that TypeScript actually understands.
- Simple API;
- Extensive tests;
- Isomorphic library, works on the browser or Node.js.
npm install aint
- Node.js v.14+
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>
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.
Source code contributions are most welcome, as long as the linter is satisfied.
Causaly is building the world's largest biomedical knowledge platform, using technologies such as TypeScript, React and Node.js. Find out more about our openings at https://apply.workable.com/causaly/.
MIT