tests/cases/compiler/nestedRecursiveArraysOrObjectsError01.ts(10,9): error TS2322: Type '{ foo: string; jj: number; }[][][]' is not assignable to type 'Style'.
  Type '{ foo: string; jj: number; }[][][]' is not assignable to type 'StyleArray'.
    Types of property 'pop' are incompatible.
      Type '() => { foo: string; jj: number; }[][]' is not assignable to type '() => Style'.
        Type '{ foo: string; jj: number; }[][]' is not assignable to type 'Style'.
          Type '{ foo: string; jj: number; }[][]' is not assignable to type 'StyleArray'.
            Types of property 'pop' are incompatible.
              Type '() => { foo: string; jj: number; }[]' is not assignable to type '() => Style'.
                Type '{ foo: string; jj: number; }[]' is not assignable to type 'Style'.
                  Type '{ foo: string; jj: number; }[]' is not assignable to type 'StyleArray'.
                    Types of property 'pop' are incompatible.
                      Type '() => { foo: string; jj: number; }' is not assignable to type '() => Style'.
                        Type '{ foo: string; jj: number; }' is not assignable to type 'Style'.
                          Object literal may only specify known properties, and 'jj' does not exist in type 'Style'.


==== tests/cases/compiler/nestedRecursiveArraysOrObjectsError01.ts (1 errors) ====
    type Style = StyleBase | StyleArray;
    interface StyleArray extends Array<Style> {}
    interface StyleBase {
        foo: string;
    }
    
    const blah: Style = [
        [[{
            foo: 'asdf',
            jj: 1 // intentional error
            ~~~~~
!!! error TS2322: Type '{ foo: string; jj: number; }[][][]' is not assignable to type 'Style'.
!!! error TS2322:   Type '{ foo: string; jj: number; }[][][]' is not assignable to type 'StyleArray'.
!!! error TS2322:     Types of property 'pop' are incompatible.
!!! error TS2322:       Type '() => { foo: string; jj: number; }[][]' is not assignable to type '() => Style'.
!!! error TS2322:         Type '{ foo: string; jj: number; }[][]' is not assignable to type 'Style'.
!!! error TS2322:           Type '{ foo: string; jj: number; }[][]' is not assignable to type 'StyleArray'.
!!! error TS2322:             Types of property 'pop' are incompatible.
!!! error TS2322:               Type '() => { foo: string; jj: number; }[]' is not assignable to type '() => Style'.
!!! error TS2322:                 Type '{ foo: string; jj: number; }[]' is not assignable to type 'Style'.
!!! error TS2322:                   Type '{ foo: string; jj: number; }[]' is not assignable to type 'StyleArray'.
!!! error TS2322:                     Types of property 'pop' are incompatible.
!!! error TS2322:                       Type '() => { foo: string; jj: number; }' is not assignable to type '() => Style'.
!!! error TS2322:                         Type '{ foo: string; jj: number; }' is not assignable to type 'Style'.
!!! error TS2322:                           Object literal may only specify known properties, and 'jj' does not exist in type 'Style'.
        }]]
    ];
    
    