Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

The example code in "Generic" does not run #475

Open
FumioNonaka opened this issue Jan 5, 2017 · 4 comments
Open

The example code in "Generic" does not run #475

FumioNonaka opened this issue Jan 5, 2017 · 4 comments

Comments

@FumioNonaka
Copy link

The example code of "Using Type Parameters in Generic Constraints" in "Generic" does not run. The following error is shown.

'Type 'U[keyof U]' is not assignable to type 'T[keyof U]'. Type 'U' is not assignable to type 'T'.'

function copyFields<T extends U, U>(target: T, source: U): T {
	for (let id in source) {
		target[id] = source[id];
	}
	return target;
}
let x = { a: 1, b: 2, c: 3, d: 4 };
copyFields(x, { b: 10, d: 20 });

In fact, this does not run in the Playground.

@mhegazy
Copy link
Contributor

mhegazy commented Jan 5, 2017

This example is not correct now. It should be typed as:

function copyFields<T, K extends keyof T>(target: T, source: Pick<T, K>): T {
	for (let id in source) {
		target[id] = source[id];
	}
	return target;
}

@mhegazy
Copy link
Contributor

mhegazy commented Jan 5, 2017

A PR would be welcomed.

@Swap76
Copy link
Contributor

Swap76 commented Oct 3, 2019

Hey I am newbie will love to submit a PR

@sasurau4
Copy link

This issue seems fixed by #489

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants