microsoft / microsoft/TypeScript
Type infer issue in interfaces with internal properties
Aperta
@rbuckton ci sta già lavorando.
Dal 10/2/2021.
Rescheduled
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 1g 19h
- PR unite (30g)
- 117
Descrizione
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 ^^
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Valutazione
Questa issue non è ancora stata valutata.