Misleading error elaboration #25971
Labels
Bug
A bug in TypeScript
Domain: Error Messages
The issue relates to error messaging
Fixed
A PR has been merged for this issue
Milestone
TypeScript Version: 3.1.0-dev
Search Terms: Error elaboration
Code
Expected behavior: An error stating
{ a: string, b: number, c: number }
is not assignable toT
.Actual behavior: Elaboration errors on the
b
andc
property assignments which misleads the user to think the issue is with those properties. The real issue is that no object literal and only aT
is assignable toT
, and we should not attempt to elaborate here. Generally, the elaboration logic can't rely on the behavior ofgetIndexedAccess
without first validating that a meaningful type is being requested becausegetIndexedAccess
will happily create deferred indexed access types that technically are errors. The elaboration logic needs to be more selective about which target types it descends into. Specifically, I would suggest only descending into non-generic object types and non-generic intersection types.The text was updated successfully, but these errors were encountered: