This package has been deprecated

Author message:

tsd-check has been renamed to tsd (https://github.com/SamVerschueren/tsd)

tsd-check
TypeScript icon, indicating that this package has built-in type declarations

0.6.0 • Public • Published

tsd-check Build Status

Check TypeScript type definitions

Install

$ npm install tsd-check

Usage

Let's assume we wrote a index.d.ts type definition for our concat module.

declare const concat: {
    (value1: string, value2: string): string;
    (value1: number, value2: number): string;
};
 
export default concat;

In order to test this definition, add a index.test-d.ts file.

import concat from '.';
 
concat('foo', 'bar');
concat(1, 2);

Running npx tsd-check as a command will verify that the type definition works correctly.

Let's add some extra assertions. We can assert the return type of our function call to match a certain type.

import {expectType} from 'tsd-check';
import concat from '.';
 
expectType<string>(concat('foo', 'bar'));
expectType<string>(concat(1, 2));

The tsd-check command will succeed again.

We change our implementation and type definition to return a number when both inputs are of type number.

declare const concat: {
    (value1: string, value2: string): string;
    (value1: number, value2: number): number;
};
 
export default concat;

If we don't change the test file and we run the tsd-check command again, the test will fail.

Top-level await

If your method returns a Promise, you can use top-level await to resolve the value instead of wrapping it in an async IIFE.

import {expectType, expectError} from 'tsd-check';
import concat from '.';
 
expectType<Promise<string>>(concat('foo', 'bar'));
 
expectType<string>(await concat('foo', 'bar'));
 
expectError(await concat(true, false));

Test directory

When you have spread your tests over multiple files, you can store all those files in a test directory called test-d. If you want to use another directory name, you can change it in package.json.

{
    "name": "my-module",
    "tsd-check": {
        "directory": "my-test-dir"
    }
}

Now you can put all your test files in the my-test-dir directory.

Assertions

expectType<T>(value)

Check if a value is of a specific type.

expectError(function)

Check if the function call has argument type errors.

expectError<T>(value)

Check if a value is of the provided type T.

License

MIT © Sam Verschueren

Package Sidebar

Install

npm i tsd-check

Weekly Downloads

225

Version

0.6.0

License

MIT

Unpacked Size

23.2 kB

Total Files

26

Last publish

Collaborators

  • samverschueren