mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 16:38:05 -06:00
Further optional delete corrections (#44862)
* Add more tests. * Accepted baselines. * Switch to testing the symbol's flags. * Accepted baselines.
This commit is contained in:
parent
e3d6189e3a
commit
248b2c3fc1
@ -31411,7 +31411,7 @@ namespace ts {
|
||||
const type = getTypeOfSymbol(symbol);
|
||||
if (strictNullChecks &&
|
||||
!(type.flags & (TypeFlags.AnyOrUnknown | TypeFlags.Never)) &&
|
||||
!(exactOptionalPropertyTypes ? hasQuestionToken(symbol.valueDeclaration!) : getFalsyFlags(type) & TypeFlags.Undefined)) {
|
||||
!(exactOptionalPropertyTypes ? symbol.flags & SymbolFlags.Optional : getFalsyFlags(type) & TypeFlags.Undefined)) {
|
||||
error(expr, Diagnostics.The_operand_of_a_delete_operator_must_be_optional);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(25,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(34,10): error TS2339: Property 'j' does not exist on type 'Foo'.
|
||||
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(28,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 (3 errors) ====
|
||||
==== tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts (4 errors) ====
|
||||
interface Foo {
|
||||
a: number
|
||||
b: number | undefined
|
||||
@ -25,6 +26,7 @@ tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.t
|
||||
}
|
||||
|
||||
declare const f: Foo
|
||||
declare const g: Partial<Foo>
|
||||
declare const a: AA
|
||||
declare const b: BB
|
||||
|
||||
@ -45,6 +47,19 @@ tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.t
|
||||
~
|
||||
!!! 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
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ type BB = {
|
||||
}
|
||||
|
||||
declare const f: Foo
|
||||
declare const g: Partial<Foo>
|
||||
declare const a: AA
|
||||
declare const b: BB
|
||||
|
||||
@ -34,6 +35,17 @@ delete f.h
|
||||
delete f.i
|
||||
delete f.j
|
||||
|
||||
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
|
||||
|
||||
delete a.a
|
||||
delete a.b
|
||||
|
||||
@ -52,6 +64,16 @@ delete f.g;
|
||||
delete f.h;
|
||||
delete f.i;
|
||||
delete f.j;
|
||||
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;
|
||||
delete a.a;
|
||||
delete a.b;
|
||||
delete b.a;
|
||||
|
||||
@ -48,12 +48,17 @@ declare const f: Foo
|
||||
>f : Symbol(f, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 20, 13))
|
||||
>Foo : Symbol(Foo, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 0, 0))
|
||||
|
||||
declare const g: Partial<Foo>
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
|
||||
>Foo : Symbol(Foo, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 0, 0))
|
||||
|
||||
declare const a: AA
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
>AA : Symbol(AA, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 10, 1))
|
||||
|
||||
declare const b: BB
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 23, 13))
|
||||
>BB : Symbol(BB, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 14, 1))
|
||||
|
||||
delete f.a
|
||||
@ -104,15 +109,63 @@ delete f.i
|
||||
delete f.j
|
||||
>f : Symbol(f, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 20, 13))
|
||||
|
||||
delete g.a
|
||||
>g.a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 0, 15))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 0, 15))
|
||||
|
||||
delete g.b
|
||||
>g.b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 1, 13))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 1, 13))
|
||||
|
||||
delete g.c
|
||||
>g.c : Symbol(c, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 2, 25))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>c : Symbol(c, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 2, 25))
|
||||
|
||||
delete g.d
|
||||
>g.d : Symbol(d, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 3, 20))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>d : Symbol(d, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 3, 20))
|
||||
|
||||
delete g.e
|
||||
>g.e : Symbol(e, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 4, 14))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>e : Symbol(e, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 4, 14))
|
||||
|
||||
delete g.f
|
||||
>g.f : Symbol(f, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 5, 32))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>f : Symbol(f, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 5, 32))
|
||||
|
||||
delete g.g
|
||||
>g.g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 6, 33))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 6, 33))
|
||||
|
||||
delete g.h
|
||||
>g.h : Symbol(h, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 7, 14))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>h : Symbol(h, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 7, 14))
|
||||
|
||||
delete g.i
|
||||
>g.i : Symbol(i, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 8, 10))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>i : Symbol(i, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 8, 10))
|
||||
|
||||
delete g.j
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
|
||||
delete a.a
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
|
||||
delete a.b
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
|
||||
delete b.a
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 23, 13))
|
||||
|
||||
delete b.b
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 23, 13))
|
||||
|
||||
|
||||
@ -45,6 +45,9 @@ type BB = {
|
||||
declare const f: Foo
|
||||
>f : Foo
|
||||
|
||||
declare const g: Partial<Foo>
|
||||
>g : Partial<Foo>
|
||||
|
||||
declare const a: AA
|
||||
>a : AA
|
||||
|
||||
@ -111,6 +114,66 @@ delete f.j
|
||||
>f : Foo
|
||||
>j : any
|
||||
|
||||
delete g.a
|
||||
>delete g.a : boolean
|
||||
>g.a : number | undefined
|
||||
>g : Partial<Foo>
|
||||
>a : number | undefined
|
||||
|
||||
delete g.b
|
||||
>delete g.b : boolean
|
||||
>g.b : number | undefined
|
||||
>g : Partial<Foo>
|
||||
>b : number | undefined
|
||||
|
||||
delete g.c
|
||||
>delete g.c : boolean
|
||||
>g.c : number | null | undefined
|
||||
>g : Partial<Foo>
|
||||
>c : number | null | undefined
|
||||
|
||||
delete g.d
|
||||
>delete g.d : boolean
|
||||
>g.d : number | undefined
|
||||
>g : Partial<Foo>
|
||||
>d : number | undefined
|
||||
|
||||
delete g.e
|
||||
>delete g.e : boolean
|
||||
>g.e : number | null | undefined
|
||||
>g : Partial<Foo>
|
||||
>e : number | null | undefined
|
||||
|
||||
delete g.f
|
||||
>delete g.f : boolean
|
||||
>g.f : number | null | undefined
|
||||
>g : Partial<Foo>
|
||||
>f : number | null | undefined
|
||||
|
||||
delete g.g
|
||||
>delete g.g : boolean
|
||||
>g.g : unknown
|
||||
>g : Partial<Foo>
|
||||
>g : unknown
|
||||
|
||||
delete g.h
|
||||
>delete g.h : boolean
|
||||
>g.h : any
|
||||
>g : Partial<Foo>
|
||||
>h : any
|
||||
|
||||
delete g.i
|
||||
>delete g.i : boolean
|
||||
>g.i : undefined
|
||||
>g : Partial<Foo>
|
||||
>i : undefined
|
||||
|
||||
delete g.j
|
||||
>delete g.j : boolean
|
||||
>g.j : any
|
||||
>g : Partial<Foo>
|
||||
>j : any
|
||||
|
||||
delete a.a
|
||||
>delete a.a : boolean
|
||||
>a.a : number
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(25,8): error TS2790: The operand of a 'delete' operator must be optional.
|
||||
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(29,8): error TS2790: The operand of a 'delete' operator must be optional.
|
||||
tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts(34,10): error TS2339: Property 'j' does not exist on type 'Foo'.
|
||||
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 (5 errors) ====
|
||||
==== tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts (6 errors) ====
|
||||
interface Foo {
|
||||
a: number
|
||||
b: number | undefined
|
||||
@ -27,6 +28,7 @@ tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.t
|
||||
}
|
||||
|
||||
declare const f: Foo
|
||||
declare const g: Partial<Foo>
|
||||
declare const a: AA
|
||||
declare const b: BB
|
||||
|
||||
@ -51,6 +53,19 @@ tests/cases/compiler/deleteExpressionMustBeOptional_exactOptionalPropertyTypes.t
|
||||
~
|
||||
!!! 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
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ type BB = {
|
||||
}
|
||||
|
||||
declare const f: Foo
|
||||
declare const g: Partial<Foo>
|
||||
declare const a: AA
|
||||
declare const b: BB
|
||||
|
||||
@ -34,6 +35,17 @@ delete f.h
|
||||
delete f.i
|
||||
delete f.j
|
||||
|
||||
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
|
||||
|
||||
delete a.a
|
||||
delete a.b
|
||||
|
||||
@ -52,6 +64,16 @@ delete f.g;
|
||||
delete f.h;
|
||||
delete f.i;
|
||||
delete f.j;
|
||||
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;
|
||||
delete a.a;
|
||||
delete a.b;
|
||||
delete b.a;
|
||||
|
||||
@ -48,12 +48,17 @@ declare const f: Foo
|
||||
>f : Symbol(f, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 20, 13))
|
||||
>Foo : Symbol(Foo, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 0, 0))
|
||||
|
||||
declare const g: Partial<Foo>
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
|
||||
>Foo : Symbol(Foo, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 0, 0))
|
||||
|
||||
declare const a: AA
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
>AA : Symbol(AA, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 10, 1))
|
||||
|
||||
declare const b: BB
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 23, 13))
|
||||
>BB : Symbol(BB, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 14, 1))
|
||||
|
||||
delete f.a
|
||||
@ -104,15 +109,63 @@ delete f.i
|
||||
delete f.j
|
||||
>f : Symbol(f, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 20, 13))
|
||||
|
||||
delete g.a
|
||||
>g.a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 0, 15))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 0, 15))
|
||||
|
||||
delete g.b
|
||||
>g.b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 1, 13))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 1, 13))
|
||||
|
||||
delete g.c
|
||||
>g.c : Symbol(c, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 2, 25))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>c : Symbol(c, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 2, 25))
|
||||
|
||||
delete g.d
|
||||
>g.d : Symbol(d, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 3, 20))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>d : Symbol(d, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 3, 20))
|
||||
|
||||
delete g.e
|
||||
>g.e : Symbol(e, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 4, 14))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>e : Symbol(e, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 4, 14))
|
||||
|
||||
delete g.f
|
||||
>g.f : Symbol(f, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 5, 32))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>f : Symbol(f, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 5, 32))
|
||||
|
||||
delete g.g
|
||||
>g.g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 6, 33))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 6, 33))
|
||||
|
||||
delete g.h
|
||||
>g.h : Symbol(h, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 7, 14))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>h : Symbol(h, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 7, 14))
|
||||
|
||||
delete g.i
|
||||
>g.i : Symbol(i, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 8, 10))
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>i : Symbol(i, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 8, 10))
|
||||
|
||||
delete g.j
|
||||
>g : Symbol(g, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
|
||||
delete a.a
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
|
||||
delete a.b
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 21, 13))
|
||||
>a : Symbol(a, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
|
||||
delete b.a
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 23, 13))
|
||||
|
||||
delete b.b
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 22, 13))
|
||||
>b : Symbol(b, Decl(deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts, 23, 13))
|
||||
|
||||
|
||||
@ -45,6 +45,9 @@ type BB = {
|
||||
declare const f: Foo
|
||||
>f : Foo
|
||||
|
||||
declare const g: Partial<Foo>
|
||||
>g : Partial<Foo>
|
||||
|
||||
declare const a: AA
|
||||
>a : AA
|
||||
|
||||
@ -111,6 +114,66 @@ delete f.j
|
||||
>f : Foo
|
||||
>j : any
|
||||
|
||||
delete g.a
|
||||
>delete g.a : boolean
|
||||
>g.a : number | undefined
|
||||
>g : Partial<Foo>
|
||||
>a : number | undefined
|
||||
|
||||
delete g.b
|
||||
>delete g.b : boolean
|
||||
>g.b : number | undefined
|
||||
>g : Partial<Foo>
|
||||
>b : number | undefined
|
||||
|
||||
delete g.c
|
||||
>delete g.c : boolean
|
||||
>g.c : number | null | undefined
|
||||
>g : Partial<Foo>
|
||||
>c : number | null | undefined
|
||||
|
||||
delete g.d
|
||||
>delete g.d : boolean
|
||||
>g.d : number | undefined
|
||||
>g : Partial<Foo>
|
||||
>d : number | undefined
|
||||
|
||||
delete g.e
|
||||
>delete g.e : boolean
|
||||
>g.e : number | null | undefined
|
||||
>g : Partial<Foo>
|
||||
>e : number | null | undefined
|
||||
|
||||
delete g.f
|
||||
>delete g.f : boolean
|
||||
>g.f : number | null | undefined
|
||||
>g : Partial<Foo>
|
||||
>f : number | null | undefined
|
||||
|
||||
delete g.g
|
||||
>delete g.g : boolean
|
||||
>g.g : unknown
|
||||
>g : Partial<Foo>
|
||||
>g : unknown
|
||||
|
||||
delete g.h
|
||||
>delete g.h : boolean
|
||||
>g.h : any
|
||||
>g : Partial<Foo>
|
||||
>h : any
|
||||
|
||||
delete g.i
|
||||
>delete g.i : boolean
|
||||
>g.i : undefined
|
||||
>g : Partial<Foo>
|
||||
>i : undefined
|
||||
|
||||
delete g.j
|
||||
>delete g.j : boolean
|
||||
>g.j : any
|
||||
>g : Partial<Foo>
|
||||
>j : any
|
||||
|
||||
delete a.a
|
||||
>delete a.a : boolean
|
||||
>a.a : number
|
||||
|
||||
@ -22,6 +22,7 @@ type BB = {
|
||||
}
|
||||
|
||||
declare const f: Foo
|
||||
declare const g: Partial<Foo>
|
||||
declare const a: AA
|
||||
declare const b: BB
|
||||
|
||||
@ -36,6 +37,17 @@ delete f.h
|
||||
delete f.i
|
||||
delete f.j
|
||||
|
||||
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
|
||||
|
||||
delete a.a
|
||||
delete a.b
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user