typed-nodejs-assert
v1.1.0
Published
improved type definitions for assertions in the nodeJS assert API
Downloads
72
Readme
typed nodejs assert
various fixes for nodeJS assertions in typescript.
what it do
this packages fixes the following issues:
the typescript definitions for the default assertion library in nodeJS do not properly check the types of expected/actual values, leading to assertion errors that could easily be caught by the compiler.
for example. in the current type definitions, the following error would not occur:
type Foo = { bar: number } const foo: Foo = { bar: 1 } //@ts-expect-error TS2345: Argument of type '{}' is not assignable to parameter of type 'Foo'. Property 'bar' is missing in type '{}' but required in type 'Foo' assert.deepStrictEqual(foo, {})
power-assert can only be imported using UMD syntax (ie.
const assert = require('power-assert')
), meaning it's treated asany
by the compiler in many cases
how to use
normally
import assert from 'typed-nodejs-assert'
with power-assert
due to the fact that power-assert usually has to be imported using UMD syntax, you have to import it as such and give it
the PowerAsssert
type from this package.
import { PowerAssert } from 'typed-nodejs-assert'
const assert: PowerAssert = require('power-assert')
IMPORTANT: you have to explicitly specify the type as shown above. the following will not work:
const assert = require('power-assert') as PowerAssert
see this issue for more info