🔎 Search Terms
d.ts emit type error
🕗 Version & Regression Information
This is a compile error when consuming a d.ts file emitting by the same version and configuration of TypeScript
This in 3.5.1, 4.0.5, 5.4.5 and 5.5.0-dev.20240528, but NOT in 3.3.3
⏯ Playground Link
https://www.typescriptlang.org/play/?module=1&ts=5.4.5&ssl=11&ssc=1&pln=1&pc=1#code/KYDwDg9gTgLgBAMwK4DsDGMCWEVwIYAmeYMAoikgLYA8AKuVXKDMCgQM5wBKwa0B1djCiYUAcwA0cISPEA+OQAoAUAEo4Ab2UBIGAE8wwOAAU8sAIxwAvJp3aA2sagRDsPXFFwA1sD0QEcPQUlAC6AFxwiupWcoEMlI7OrvohOgC+ANw6fChCiHgY0HoA8kjwNlHWsVra2lDAMEhQuIoADPicqF4oEADuuHic+ob++YVQJWVwAGQmZjDmqvbtg3BdPf0d3r6jQVQhlelZdQ1NuAgFMEWlMFlpykA
💻 Code
exportfunctionadaptEnum<TEnumextendsRecord<string,string>>(){typePart1={[PropertyinkeyofTEnum]: ()=>TEnum[Property]};constfactoryOut=()=>{return(0asunknownastypeoffactoryOut&Part1)[0asunknownaskeyofTEnum]()};returnfactoryOut;}🙁 Actual behavior
Emits:
exportdeclarefunctionadaptEnum<TEnumextendsRecord<string,string>>(): ()=>TEnum[string]|TEnum[number]|TEnum[symbol];
Which Errors:
Type 'number' cannot be used to index type 'TEnum'.(2536)
🙂 Expected behavior
I expect TypeScript to either error when trying to emit a d.ts file, or generate a valid d.ts file it can consume without error.
Additional information about the issue
This issue report is derived from minimizing the same code that produced #56718 (which is now fixed) and is similar to that issue. The same workaround I have from that case still works, so this isn't blocking anything except removing that workaround.
🔎 Search Terms
d.ts emit type error
🕗 Version & Regression Information
This is a compile error when consuming a d.ts file emitting by the same version and configuration of TypeScript
This in 3.5.1, 4.0.5, 5.4.5 and 5.5.0-dev.20240528, but NOT in 3.3.3
⏯ Playground Link
https://www.typescriptlang.org/play/?module=1&ts=5.4.5&ssl=11&ssc=1&pln=1&pc=1#code/KYDwDg9gTgLgBAMwK4DsDGMCWEVwIYAmeYMAoikgLYA8AKuVXKDMCgQM5wBKwa0B1djCiYUAcwA0cISPEA+OQAoAUAEo4Ab2UBIGAE8wwOAAU8sAIxwAvJp3aA2sagRDsPXFFwA1sD0QEcPQUlAC6AFxwiupWcoEMlI7OrvohOgC+ANw6fChCiHgY0HoA8kjwNlHWsVra2lDAMEhQuIoADPicqF4oEADuuHic+ob++YVQJWVwAGQmZjDmqvbtg3BdPf0d3r6jQVQhlelZdQ1NuAgFMEWlMFlpykA
💻 Code
🙁 Actual behavior
Emits:
Which Errors:
Type 'number' cannot be used to index type 'TEnum'.(2536)🙂 Expected behavior
I expect TypeScript to either error when trying to emit a d.ts file, or generate a valid d.ts file it can consume without error.
Additional information about the issue
This issue report is derived from minimizing the same code that produced #56718 (which is now fixed) and is similar to that issue. The same workaround I have from that case still works, so this isn't blocking anything except removing that workaround.