tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(26,8): error TS2790: The operand of a 'delete' operator must be optional.
tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(27,8): error TS2790: The operand of a 'delete' operator must be optional.
tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(28,8): error TS2790: The operand of a 'delete' operator must be optional.
tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(30,8): error TS2790: The operand of a 'delete' operator must be optional.
tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(35,10): error TS2339: Property 'j' does not exist on type 'Foo'.
tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(46,10): error TS2339: Property 'j' does not exist on type 'Partial<Foo>'.


==== tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts (6 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 g: Partial<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
           ~~~
!!! error TS2790: The operand of a 'delete' operator must be optional.
    delete f.c
           ~~~
!!! error TS2790: The operand of a 'delete' operator must be optional.
    delete f.d
    delete f.e
           ~~~
!!! error TS2790: The operand of a 'delete' operator must be optional.
    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 g.a
    delete g.b
    delete g.c
    delete g.d
    delete g.e
    delete g.f
    delete g.g
    delete g.h
    delete g.i
    delete g.j
             ~
!!! error TS2339: Property 'j' does not exist on type 'Partial<Foo>'.
    
    delete a.a
    delete a.b
    
    delete b.a
    delete b.b
    