Skip to content

Mapped types break for-in loops with intersections #13023

Description

@gcnew

TypeScript Version: nightly

The following used to work but is broken now.

Code

functionextend<T,U>(base: T,ext: U): T&U{constretval=<T&U>{};for(constxinbase){// Error: Type 'T[keyof T]' is not assignable to type '(T & U)[keyof T]'.retval[x]=base[x];}for(constxinext){// Error: Type 'U[keyof U]' is not assignable to type '(T & U)[keyof U]'.retval[x]=ext[x];}returnretval;}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Working as IntendedThe behavior described is the intended behavior; this is not a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions