tests/cases/compiler/deleteExpressionMustBeOptional.ts(25,8): error TS2790: The operand of a 'delete' operator must be optional.
tests/cases/compiler/deleteExpressionMustBeOptional.ts(27,8): error TS2790: The operand of a 'delete' operator must be optional.
tests/cases/compiler/deleteExpressionMustBeOptional.ts(34,10): error TS2339: Property 'j' does not exist on type 'Foo'.


==== tests/cases/compiler/deleteExpressionMustBeOptional.ts (3 errors) ====
    interface Foo {
        a: number
        b: number | undefined
        c: number | null
        d?: number
        e: number | undefined | null
        f?: number | undefined | null
        g: unknown
        h: any
        i: never
    }
    
    interface AA {
        [s: string]: number
    }
    
    type BB = {
        [P in keyof any]: number
    }
    
    declare const f: Foo
    declare const a: AA
    declare const b: BB
    
    delete f.a
           ~~~
!!! error TS2790: The operand of a 'delete' operator must be optional.
    delete f.b
    delete f.c
           ~~~
!!! error TS2790: The operand of a 'delete' operator must be optional.
    delete f.d
    delete f.e
    delete f.f
    delete f.g
    delete f.h
    delete f.i
    delete f.j
             ~
!!! error TS2339: Property 'j' does not exist on type 'Foo'.
    
    delete a.a
    delete a.b
    
    delete b.a
    delete b.b