Есть код вида
interface Interface {
[id: string]: Interface2;
}
interface Interface2 {
[id: string]: string|boolean;
}
var a:Interface = {
abc: {
a: 'a',
b: 'b',
c: 'c'
},
cde: {
c: 'c',
d: 'd',
e: true
}
};
if (a.cde.e) {
console.log(1);
} else {
console.log(2);
}
if (a['cde']['e']) {
console.log(1);
} else {
console.log(2);
}
В коде внизу можно увидеть 2 условия: в 1-м компилятор ругается
Property 'cde' does not exist on type 'Interface'.
Во втором условии - нет.
Почему он ругается в 1-м условии? Как сделать так, что бы не ругался?
Проверить можно тут
www.typescriptlang.org/Playground