Elementwise elaboration fails to be found for properties mixed with incompatible index signatures using intersections #58344
Labels
Help Wanted
You can do this
Possible Improvement
The current behavior isn't wrong, but it's possible to see that it might be better in some cases
Milestone
π Search Terms
elementwise elaboration errors write type index signature intersection
π Version & Regression Information
β― Playground Link
https://www.typescriptlang.org/play/?ts=5.5.0-dev.20240428#code/MYewdgzgLgBFCm0BcMDeMDaBrF0BOAlmAOYC6KYArgLYBG8eMAvjAGRowBmIIuUhJZjAC8HbrxgAiWgEM8k5gG4AUEA
π» Code
π Actual behavior
test
variable gets highlightedπ Expected behavior
I'd expect
foo
property in the source to get highlightedAdditional information about the issue
I don't really expect this to get any meaningful priority ;p it's just something interesting that I noticed while investigating some legitimate question as to why an error is not on the property itself in a more complex situation. Such intersections are flawed on principle so π€·ββοΈ
This happens because
elaborateElementwise
usesgetBestMatchIndexedAccessTypeOrUndefined
and that prefers concrete properties on intersections over index signatures. The problem is that you can read such dubious properties from the type (and it has a matching type in the example above so it doesn't become an elementwise candidate) but you can't quite write to them.The text was updated successfully, but these errors were encountered: