13af6ab5fSopenharmony_ci#  Object literals cannot be used as type declarations
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-obj-literals-as-types``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS does not support the usage of object literals to declare
83af6ab5fSopenharmony_citypes in place. Declare classes and interfaces explicitly instead.
93af6ab5fSopenharmony_ci
103af6ab5fSopenharmony_ci
113af6ab5fSopenharmony_ci## TypeScript
123af6ab5fSopenharmony_ci
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_ci```
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci    let o: {x: number, y: number} = {
173af6ab5fSopenharmony_ci        x: 2,
183af6ab5fSopenharmony_ci        y: 3
193af6ab5fSopenharmony_ci    }
203af6ab5fSopenharmony_ci
213af6ab5fSopenharmony_ci    type S = Set<{x: number, y: number}>
223af6ab5fSopenharmony_ci
233af6ab5fSopenharmony_ci```
243af6ab5fSopenharmony_ci
253af6ab5fSopenharmony_ci## ArkTS
263af6ab5fSopenharmony_ci
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_ci```
293af6ab5fSopenharmony_ci
303af6ab5fSopenharmony_ci    class O {
313af6ab5fSopenharmony_ci        x: number = 0
323af6ab5fSopenharmony_ci        y: number = 0
333af6ab5fSopenharmony_ci    }
343af6ab5fSopenharmony_ci
353af6ab5fSopenharmony_ci    let o: O = {x: 2, y: 3}
363af6ab5fSopenharmony_ci
373af6ab5fSopenharmony_ci    type S = Set<O>
383af6ab5fSopenharmony_ci
393af6ab5fSopenharmony_ci```
403af6ab5fSopenharmony_ci
413af6ab5fSopenharmony_ci## See also
423af6ab5fSopenharmony_ci
433af6ab5fSopenharmony_ci- Recipe 038:  Object literal must correspond to some explicitly declared class or interface (``arkts-no-untyped-obj-literals``)
443af6ab5fSopenharmony_ci- Recipe 043:  Array literals must contain elements of only inferrable types (``arkts-no-noninferrable-arr-literals``)
453af6ab5fSopenharmony_ci
463af6ab5fSopenharmony_ci
47