Closed
Description
🔎 Search Terms
Function parameter
🕗 Version & Regression Information
- This changed between versions ______ and _______
- This changed in commit or PR _______
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about _________
- I was unable to test this on prior versions because _______
⏯ Playground Link
💻 Code
enum Type {
A,
B,
}
interface TypeMap {
[Type.A]: string;
[Type.B]: number;
}
type X<T extends Type> = TypeMap[T];
function func<T extends Type>(type: T, extend: X<T>) {
if (type === Type.A) {
// Why "extend" type is not string ?
// (parameter) extend: string | number | boolean
console.log(type, extend);
}
}
func(Type.A, '');
func(Type.B, 1);
🙁 Actual behavior
In the example, Why "extend" type is not string ?
🙂 Expected behavior
The "type" constrained to "Type.A",so "extend" shuld be "string".
Additional information about the issue
No response
Metadata
Metadata
Assignees
Labels
No labels