Closed
Description
My suggestion was hidden in the closed #13792, so i open a new issue about that.
Every object map can be undefined on a random key access. Can we catch this in a general approach or do we have to find every needed definition?
I just changed my own code and had an issue with for in loops. Tested with TS2.1 perhaps this has changed in 2.2
const StringDict: { [index: string]: string; } = {foo: 'bar'};
for (let key in StringDict) {
const thisStringValue = StringDict[key];
}
const StringDict2: { [index: string]: string | undefined; } = {foo: 'bar'};
for (let key in StringDict2) {
const StringValueOrUndefined = StringDict2[key];
}
I cannot imagine a case where StringValueOrUndefined is really able to become undefined. So an extra check to make TS happy would burn CPU cycles.