248b2c3fc1
* Add more tests. * Accepted baselines. * Switch to testing the symbol's flags. * Accepted baselines.
81 lines
1.1 KiB
TypeScript
81 lines
1.1 KiB
TypeScript
//// [deleteExpressionMustBeOptional_exactOptionalPropertyTypes.ts]
|
|
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
|
|
delete f.b
|
|
delete f.c
|
|
delete f.d
|
|
delete f.e
|
|
delete f.f
|
|
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
|
|
delete b.b
|
|
|
|
|
|
//// [deleteExpressionMustBeOptional_exactOptionalPropertyTypes.js]
|
|
delete f.a;
|
|
delete f.b;
|
|
delete f.c;
|
|
delete f.d;
|
|
delete f.e;
|
|
delete f.f;
|
|
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;
|
|
delete b.b;
|