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'
power-assert
withdue 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