Microsoft/TypeScript
View on GitHubNo error on self-referencing type parameter of non-generic mapped type
Open
#62,176 opened on Aug 2, 2025
BugDomain: Mapped TypesHelp Wanted
Description
๐ Search Terms
mapped type circular self reference type parameter
๐ Version & Regression Information
- This is the behavior in every version I tried
โฏ Playground Link
๐ป Code
type Test = keyof {
[P in keyof P]: unknown
};
declare const test: Test;
export function getTest() {
return test;
}
๐ Actual behavior
[P in keyof P] doesn't error anyhow but it's clearly circular. Furthermore, the generated .d.ts here is:
export declare function getTest(): keyof P;
P leaked here and this is invalid
๐ Expected behavior
I'd expect this to produce a circularity error and at the very least the generated declaration file should not contain a leaked type variable
Additional information about the issue
cc @jfet97 who originally mentioned part of this to me in a DM ๐