Skip to content

Suspected breaking change with pushing and assigning a 'derived' value into a 'base' array #59016

Description

@adam-marshall

🔎 Search Terms

inline assignment array derived base push 'Object literal may only specific known properties'

🕗 Version & Regression Information

  • This changed between versions 4.9.5 and 5.0.4

⏯ Playground Link

https://www.typescriptlang.org/play/?ts=5.0.4#code/JYOwLgpgTgZghgYwgAgEJwM4oN4FgBQyywAJgFzIgCuAtgEbQDcBAvgQaJLIigCLTAAbhBLIIAD0ggSGNJhwEiIODQgUMYKKADmzfG3wEEAexAbikGhgrosAbQC6yALzJHeggBsIYCxBoAjBT8WsIket6+wJYATMECYR740f4BLsjYxOTIAQA0lCpqyADkYAAWwLKVyMYA1shQENpwUCTeGBjFyCx6KVYAdAAOVBhlABR9AQCUSX0YQyPjE7HpmaQUMfnKqhSlFVWyAHIA8gAqNfWgyACs-QAM-QAs+XRUUbJ1xCDIj-0AnP1rl0WFMZkA

💻 Code

interfaceBase{id: number;}interfaceDerivedextendsBase{name: string;}constitems: Base[]=[];letitem1: Derived;letitem2: Derived;item1={id: 1,name: 'this is ok regardless'};items.push(item1);items.push((item2={id: 2,name: 'this is NOT ok in 5.0.4, but is ok in 4.9.5'}));

🙁 Actual behavior

'Object literal may only specific known properties' error

🙂 Expected behavior

The code should not produce an error

Additional information about the issue

It is possible that this is a change to the order in which types are inferred, but I have been unable to find any details in the documentation/changelog.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions