microsoft / microsoft/TypeScript
Type infer issue in interfaces with internal properties
Offen
@rbuckton arbeitet bereits daran.
Seit 10.2.2021.
Rescheduled
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
Bug Report
🕗 Version & Regression Information
4.1.3 & 4.2.0-dev the same
⏯ Playground Link
💻 Code
interface Base {
inside: {
v: number;
}
}
interface X extends Base {
inside: {
v: 1
}
a: number;
x?: number;
}
interface Y extends Base {
inside: {
v: 2
}
a: number;
y?: number;
}
interface Z extends Base {
inside: {
v: 3
}
z?: number;
}
const v2: number = 2;
let v1: 1|2;
if (v2 === 2) v1 = 2; else v1 = 1;
const value: X | Y = {
inside: {
v: v1
},
a: 10
};
console.log(value);
🙁 Actual behavior
Type '{ inside: { v: 1 | 2; }; a: number; }' is not assignable to type 'X | Y'.
Type '{ inside: { v: 1 | 2; }; a: number; }' is not assignable to type 'Y'.
Types of property 'inside' are incompatible.
Type '{ v: 1 | 2; }' is not assignable to type '{ v: 2; }'.(2322)
🙂 Expected behavior
No error ^^
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Bewertung
Dieses Issue wurde noch nicht bewertet.