13af6ab5fSopenharmony_ci#  ``Symbol()`` API is not supported
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-symbol``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciTypeScript has ``Symbol()`` API, which can be used among other things to generate
83af6ab5fSopenharmony_ciunique property names at runtime. ArkTS does not support ``Symbol()`` API
93af6ab5fSopenharmony_cibecause its most popular use cases make no sense in the statically typed
103af6ab5fSopenharmony_cienvironment. In particular, the object layout is defined at compile time,
113af6ab5fSopenharmony_ciand cannot be changed at runtime.
123af6ab5fSopenharmony_ci
133af6ab5fSopenharmony_ci``Symbol.iterator`` and iterable interfaces are supported in ArkTS.
143af6ab5fSopenharmony_ci
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci## TypeScript
173af6ab5fSopenharmony_ci
183af6ab5fSopenharmony_ci
193af6ab5fSopenharmony_ci```
203af6ab5fSopenharmony_ci
213af6ab5fSopenharmony_ci    const sym = Symbol()
223af6ab5fSopenharmony_ci    let o = {
233af6ab5fSopenharmony_ci       [sym]: "value"
243af6ab5fSopenharmony_ci    }
253af6ab5fSopenharmony_ci
263af6ab5fSopenharmony_ci```
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_ci## ArkTS
293af6ab5fSopenharmony_ci
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci```
323af6ab5fSopenharmony_ci
333af6ab5fSopenharmony_ci    class SomeClass {
343af6ab5fSopenharmony_ci        public someProperty : string = ""
353af6ab5fSopenharmony_ci    }
363af6ab5fSopenharmony_ci    let o = new SomeClass()
373af6ab5fSopenharmony_ci
383af6ab5fSopenharmony_ci```
393af6ab5fSopenharmony_ci
403af6ab5fSopenharmony_ci## See also
413af6ab5fSopenharmony_ci
423af6ab5fSopenharmony_ci- Recipe 001:  Objects with property names that are not identifiers are not supported (``arkts-identifiers-as-prop-names``)
433af6ab5fSopenharmony_ci- Recipe 029:  Indexed access is not supported for fields (``arkts-no-props-by-index``)
443af6ab5fSopenharmony_ci- Recipe 059:  ``delete`` operator is not supported (``arkts-no-delete``)
453af6ab5fSopenharmony_ci- Recipe 060:  ``typeof`` operator is allowed only in expression contexts (``arkts-no-type-query``)
463af6ab5fSopenharmony_ci- Recipe 066:  ``in`` operator is not supported (``arkts-no-in``)
473af6ab5fSopenharmony_ci- Recipe 144:  Usage of standard library is restricted (``arkts-limited-stdlib``)
483af6ab5fSopenharmony_ci
493af6ab5fSopenharmony_ci
50