Microsoft/TypeScript
GitHub ã§èŠãGenerated d.ts includes implicit any for recursive types
Open
#55,832 opened on 2023幎9æ22æ¥
Domain: Declaration EmitHelp WantedPossible Improvement
Repository metrics
- Stars
- Â (48,455 stars)
- PR merge metrics
-  (å¹³åããŒãž 6d 17h) (30d ã§ 9 merged PRs)
説æ
ð Search Terms
recursive any noImplicitAny d.ts
ð Version & Regression Information
- This is the behavior in every version I tried (3.3 through 5.2), and I reviewed the FAQ for entries about anything related to this.
⯠Playground Link
ð» Code
const a = () => a;
ð Actual behavior
Any is implicitly introduced in the d.ts:
declare const a: () => any;
Note that the local type checking (not using the d.ts) correctly handles this recursive type without introducing "any", and builds fine with noImplicitAny enabled.
ð Expected behavior
Either generate something without implicitly introducing any, or generate an error if noImplicitAny is enabled.
In this case, the below code generation for the d.ts would work:
declare const a: () => typeof a;
Additional information about the issue
No response