13af6ab5fSopenharmony_ci#  ``in`` operator is not supported
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-in``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS does not support the operator ``in``. However, this operator makes
83af6ab5fSopenharmony_cilittle sense since the object layout is known at compile time, and cannot
93af6ab5fSopenharmony_cibe modified at runtime. Use ``instanceof`` as a workaround if you still need
103af6ab5fSopenharmony_cito check whether certain class members exist.
113af6ab5fSopenharmony_ci
123af6ab5fSopenharmony_ci
133af6ab5fSopenharmony_ci## TypeScript
143af6ab5fSopenharmony_ci
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci```
173af6ab5fSopenharmony_ci
183af6ab5fSopenharmony_ci    class Person {
193af6ab5fSopenharmony_ci        name: string = ""
203af6ab5fSopenharmony_ci    }
213af6ab5fSopenharmony_ci    let p = new Person()
223af6ab5fSopenharmony_ci
233af6ab5fSopenharmony_ci    let b = "name" in p // true
243af6ab5fSopenharmony_ci
253af6ab5fSopenharmony_ci```
263af6ab5fSopenharmony_ci
273af6ab5fSopenharmony_ci## ArkTS
283af6ab5fSopenharmony_ci
293af6ab5fSopenharmony_ci
303af6ab5fSopenharmony_ci```
313af6ab5fSopenharmony_ci
323af6ab5fSopenharmony_ci    class Person {
333af6ab5fSopenharmony_ci        name: string = ""
343af6ab5fSopenharmony_ci    }
353af6ab5fSopenharmony_ci    let p = new Person()
363af6ab5fSopenharmony_ci
373af6ab5fSopenharmony_ci    let b = p instanceof Person // true, and "name" is guaranteed to be present
383af6ab5fSopenharmony_ci
393af6ab5fSopenharmony_ci```
403af6ab5fSopenharmony_ci
413af6ab5fSopenharmony_ci## See also
423af6ab5fSopenharmony_ci
433af6ab5fSopenharmony_ci- Recipe 001:  Objects with property names that are not identifiers are not supported (``arkts-identifiers-as-prop-names``)
443af6ab5fSopenharmony_ci- Recipe 002:  ``Symbol()`` API is not supported (``arkts-no-symbol``)
453af6ab5fSopenharmony_ci- Recipe 029:  Indexed access is not supported for fields (``arkts-no-props-by-index``)
463af6ab5fSopenharmony_ci- Recipe 059:  ``delete`` operator is not supported (``arkts-no-delete``)
473af6ab5fSopenharmony_ci- Recipe 060:  ``typeof`` operator is allowed only in expression contexts (``arkts-no-type-query``)
483af6ab5fSopenharmony_ci- Recipe 144:  Usage of standard library is restricted (``arkts-limited-stdlib``)
493af6ab5fSopenharmony_ci
503af6ab5fSopenharmony_ci
51