TypeScript/tests/baselines/reference/deleteExpressionMustBeOptional(strict=true).types

138 lines
1.9 KiB
Plaintext

=== tests/cases/compiler/deleteExpressionMustBeOptional.ts ===
interface Foo {
a: number
>a : number
b: number | undefined
>b : number | undefined
c: number | null
>c : number | null
>null : null
d?: number
>d : number | undefined
e: number | undefined | null
>e : number | null | undefined
>null : null
f?: number | undefined | null
>f : number | null | undefined
>null : null
g: unknown
>g : unknown
h: any
>h : any
i: never
>i : never
}
interface AA {
[s: string]: number
>s : string
}
type BB = {
>BB : BB
[P in keyof any]: number
}
declare const f: Foo
>f : Foo
declare const a: AA
>a : AA
declare const b: BB
>b : BB
delete f.a
>delete f.a : boolean
>f.a : number
>f : Foo
>a : number
delete f.b
>delete f.b : boolean
>f.b : number | undefined
>f : Foo
>b : number | undefined
delete f.c
>delete f.c : boolean
>f.c : number | null
>f : Foo
>c : number | null
delete f.d
>delete f.d : boolean
>f.d : number | undefined
>f : Foo
>d : number | undefined
delete f.e
>delete f.e : boolean
>f.e : number | null | undefined
>f : Foo
>e : number | null | undefined
delete f.f
>delete f.f : boolean
>f.f : number | null | undefined
>f : Foo
>f : number | null | undefined
delete f.g
>delete f.g : boolean
>f.g : unknown
>f : Foo
>g : unknown
delete f.h
>delete f.h : boolean
>f.h : any
>f : Foo
>h : any
delete f.i
>delete f.i : boolean
>f.i : never
>f : Foo
>i : never
delete f.j
>delete f.j : boolean
>f.j : any
>f : Foo
>j : any
delete a.a
>delete a.a : boolean
>a.a : number
>a : AA
>a : number
delete a.b
>delete a.b : boolean
>a.b : number
>a : AA
>b : number
delete b.a
>delete b.a : boolean
>b.a : number
>b : BB
>a : number
delete b.b
>delete b.b : boolean
>b.b : number
>b : BB
>b : number