Skip to content

Regress: Deep recursive type transform gives any #29577

Closed
@cevek

Description

@cevek

TypeScript Version: 3.3.0-dev.20190125

Search Terms:

It works in 3.1.6, but in 3.2 and 3.3 it gives any

Code

export type Transform<T> = { [K in keyof T]: Transform<T[K]> };
interface User {
    avatar: string;
}

interface Guest {
    displayName: string;
}

interface Product {
    users: (User | Guest)[];
}
declare var product:Transform<Product>;
product.users // any[] 

Expected behavior:
Transform<(User | Guest)>[]
Actual behavior:
any[]

Metadata

Metadata

Assignees

Labels

DuplicateAn existing issue was already createdFixedA PR has been merged for this issue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions