microsoft / microsoft/TypeScript
Possible to narrow type of object literal property with strictNullChecks?
@sandersn y travaille déjà.
Depuis le 30/1/2018.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
TypeScript Version: Current playground (2.6?)
Code
type Foo = {
bar?: number[];
}
let f1: Foo = {};
f1.bar = [];
f1.bar.push(0);
let f2: Foo = { bar: [] };
f2.bar.push(0);
Expected behavior:
Both references to .bar compile successfully.
Actual behavior:
Second reference (f2.bar.push(0)) fails with "object is possibly undefined" -- the type of f2.bar is still treated as number[] | undefined even though it obviously can't be undefined.
This might not be an actual bug as such but whatever magic allows the compiler to narrow the type of f1.bar after assigning to it, should also be able to narrow the type when it was assigned in the literal.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Évaluation
Cette issue n'a pas encore été évaluée.