Skip to content

Expect Type Error #31

@anodynos

Description

@anodynos

Hey and thanks for this lib - I started using it to day, coming from using plain .ts files with typed variable assignments & forced errors with // @ts-expect-error on top. It worked well, but I want to get to something more structured.

I see I also have to use // ts-expect-error to catch expected errors in ts-expect-error, which is fine.

I'm also in the habit of documenting the expected errors, like we do in out code tests, but it's purely for documentation & future reference, as it's not possible to be checked. For example:

const identity = <T>(val: T): T => val

// @ts-expect-error: TS2322: Type number is not assignable to type string
const str: string = identity(123)

In ts-expect we have the expectType<number>("test"); // Compiler error example, but we don't document the error somehow, so it can be checked.

An exotic new version could support something like:

expectTypeError<number>("test", `TS2345: Argument of type string is not assignable to parameter of type number`);

and perhaps do some magic to obtain error codes & descriptions.

I know this is much much harder, and probably not just a lib, as it perhaps would have to incorporate information from the IDE or TS compiler to do the trick, but there might be a way ;-) Maybe an IDE plugin? Who knows!

Anyway, just a thought, just sharing!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions