type-fest
type-fest copied to clipboard
IfAny circular constraint in TS 5.4+
Line 3 reports Type parameter 'T' has a circular constraint. (2313)
since TS 5.4 which can be fixed with NoInfer
import type {IfAny} from "type-fest";
function foo<T extends IfAny<T, never, string>>( arg: T ): string;
function fooN<T extends IfAny<NoInfer<T>, never, string>>( arg: T ): string;
Is this something that can be fixed by IfAny internally to avoid having to change 100s of places where it reports this error since TS 5.4 in our codebase?
Upvote & Fund
- We're using Polar.sh so you can upvote and help fund this issue.
- The funding will be given to active contributors.
- Thank you in advance for helping prioritize & fund our backlog.
Yeah, it does seem like we can just do:
-type IsAny<T> = 0 extends 1 & T ? true : false;
+type IsAny<T> = 0 extends 1 & NoInfer<T> ? true : false;
@tommy-mitchell Thoughts?
Also needs tests that catches the error, so yet another one that highlights #837