Skip to content

3.5 regression: union type as property accessor break function parameter inference #32038

Closed
@fregante

Description

@fregante

TypeScript Version: 3.5.2 (it works with 3.4.4). Also tested on 3.6.0-dev.20190622

Search Terms:

Code (not real-life, just a repro)

const actions = ['resizeTo', 'resizeBy'] as const;
for (const action of actions) {
	window[action] = (x, y) => {
		window[action](x, y);
	}
}

Expected behavior:

x and y are of type number (like in 3.4)

Actual behavior:

x and y are of type any

Playground Link: (enable noImplicitAny, but it seems to be on 3.4)

https://www.typescriptlang.org/play/#src=%0D%0Aconst%20actions%20%3D%20%5B'resizeTo'%2C%20'resizeBy'%5D%20as%20const%3B%0D%0Afor%20(const%20action%20of%20actions)%20%7B%0D%0A%09window%5Baction%5D%20%3D%20(x%2C%20y)%20%3D%3E%20%7B%0D%0A%09%09window%5Baction%5D(x%2C%20y)%3B%0D%0A%09%7D%0D%0A%7D

Related Issues:

#32037

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFixedA PR has been merged for this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions