ESLint plugin with
^?Twoslash,$ExpectError, and$ExpectTypetype assertions. ✨
9001;
// ^? number
// $ExpectError
const value: string = 9001;
// $ExpectType number
9001;Make sure you have TypeScript and @typescript-eslint/parser installed, then install the plugin:
npm i -D eslint-plugin-expect-typeSee typescript-eslint's Getting Started docs for how to run ESLint on TypeScript files.
Add the following options to your ESLint configuration file:
{
"extends": ["plugin:expect-type/recommended"],
"plugins": ["eslint-plugin-expect-type"]
}Then, you'll be able to use ^?, $ExpectError, $ExpectType, and $ExpectTypeSnapshot comments in code assert on types.
💼 Configurations enabled in.
✅ Set in the recommended configuration.
🔧 Automatically fixable by the --fix CLI option.
💭 Requires type information.
| Name | Description | 💼 | 🔧 | 💭 |
|---|---|---|---|---|
| expect | Expects type error, type snapshot or type. | ✅ | 🔧 | 💭 |
You might consider using other popular type assertion libraries in the TypeScript ecosystem:
- expect-type: Provides functions that return assorted generic type assertion methods, such as
expectTypeOf('abc').toMatchTypeOf<string>(). - ts-expect: Provides generic type assertion function, used like
expectType<string>('abc')(). - tsd: Allows writing tests specifically for
.d.tsdefinition files.
Many thanks to @ibezkrovnyi for creating the initial version and core infrastructure of this package! 💖