13af6ab5fSopenharmony_ci#  ``delete`` operator is not supported
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-delete``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS assumes that object layout is known at compile time and cannot be
83af6ab5fSopenharmony_cichanged at runtime. Thus the operation of deleting a property makes no sense.
93af6ab5fSopenharmony_ci
103af6ab5fSopenharmony_ci
113af6ab5fSopenharmony_ci## TypeScript
123af6ab5fSopenharmony_ci
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_ci```
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci    class Point {
173af6ab5fSopenharmony_ci        x?: number = 0.0
183af6ab5fSopenharmony_ci        y?: number = 0.0
193af6ab5fSopenharmony_ci    }
203af6ab5fSopenharmony_ci
213af6ab5fSopenharmony_ci    let p = new Point()
223af6ab5fSopenharmony_ci    delete p.y
233af6ab5fSopenharmony_ci
243af6ab5fSopenharmony_ci```
253af6ab5fSopenharmony_ci
263af6ab5fSopenharmony_ci## ArkTS
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_ci
293af6ab5fSopenharmony_ci```
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci    // To mimic the original semantics, you may declare a nullable type
323af6ab5fSopenharmony_ci    // and assign null to mark value absence:
333af6ab5fSopenharmony_ci
343af6ab5fSopenharmony_ci    class Point {
353af6ab5fSopenharmony_ci        x: number | null = 0
363af6ab5fSopenharmony_ci        y: number | null = 0
373af6ab5fSopenharmony_ci    }
383af6ab5fSopenharmony_ci
393af6ab5fSopenharmony_ci    let p = new Point()
403af6ab5fSopenharmony_ci    p.y = null
413af6ab5fSopenharmony_ci
423af6ab5fSopenharmony_ci```
433af6ab5fSopenharmony_ci
443af6ab5fSopenharmony_ci## See also
453af6ab5fSopenharmony_ci
463af6ab5fSopenharmony_ci- Recipe 001:  Objects with property names that are not identifiers are not supported (``arkts-identifiers-as-prop-names``)
473af6ab5fSopenharmony_ci- Recipe 002:  ``Symbol()`` API is not supported (``arkts-no-symbol``)
483af6ab5fSopenharmony_ci- Recipe 029:  Indexed access is not supported for fields (``arkts-no-props-by-index``)
493af6ab5fSopenharmony_ci- Recipe 060:  ``typeof`` operator is allowed only in expression contexts (``arkts-no-type-query``)
503af6ab5fSopenharmony_ci- Recipe 066:  ``in`` operator is not supported (``arkts-no-in``)
513af6ab5fSopenharmony_ci
523af6ab5fSopenharmony_ci
53