-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expect Type Error #31
Comments
Having used it for a whole day, I want to add another issue. I find the strict version of
much more useful than simple I resort to assignment to a variable, which is not always desirable... I think if this is fixed in will make the library 5x more useful! |
Definitely agree with both of these, and I'll keep them in mind if anyone else wants to work on it or I find time, but I think they both require hooking into the TypeScript compiler directly. Another option might be: https://github.com/tsdjs/tsd It's much more complete and uses the compiler IIRC, so probably covers these cases already. |
@anodynos Please take a look at TSTyche (this my project), https://github.com/tstyche/tstyche. It has the // matching message
expect<Matchers>().type.toRaiseError("requires between 1 and 2 type arguments");
// or code
expect<Matchers>().type.toRaiseError(2707); By the way, a better idea to test assignably would be using |
Thank you @mrazauskas, it looks interesting, I will have a look at it when I have time for my projects - for now I'm heavily using |
@anodynos Thanks for sharing your project! To add few more details, I was developing TSTyche to be able to test types of a project that had more than 1000 assertions (in a monorepo with more than 20 packages). At this scale I wanted to be able:
TSTyche can do all this (and more!). At any scale (; It works with any generic type assertion library as well. You can use TSTyche with import { expectType, TypeEqual } from "ts-expect";
expectType<TypeEqual<{ a?: number | undefined }, { a?: number }>>(true); // pass? really?
expectType<TypeEqual<{ b?: number }, { b?: number | undefined }>>(true); // pass.. no way!! |
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 ints-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:
In
ts-expect
we have theexpectType<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:
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!
The text was updated successfully, but these errors were encountered: