Closed
Description
TypeScript Version: 3.6.4
Search Terms: Deep nested object type inference
Code
export interface A {
b: B[];
}
export interface B {
c: C[];
}
export interface C {
d: D[];
}
export interface D {
e: E[];
}
export interface E {
id?: string;
}
// Doesn't work as expected
export const a1: A[] = [
{
b: [
{
c: [
{
d: [
{
e: [{ f: 'f' }], // Doesn't show error on f: 'f'
},
],
},
],
},
],
},
];
// Work as expected
export const a2: A = {
b: [
{
c: [
{
d: [
{
e: [{ f: 'f' }], // Does show error on f: 'f'
},
],
},
],
},
],
};
Expected behavior: Show error for unknown property 'f'
Actual behavior: Doesn't show error for unknown property 'f'