13af6ab5fSopenharmony_ci#  Use ``class`` instead of a type with constructor signature
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-ctor-signatures-type``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS does not support constructor signatures in object types. Use classes
83af6ab5fSopenharmony_ciinstead.
93af6ab5fSopenharmony_ci
103af6ab5fSopenharmony_ci
113af6ab5fSopenharmony_ci## TypeScript
123af6ab5fSopenharmony_ci
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_ci```
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci    class SomeObject {}
173af6ab5fSopenharmony_ci
183af6ab5fSopenharmony_ci    type SomeConstructor = {
193af6ab5fSopenharmony_ci        new (s: string): SomeObject
203af6ab5fSopenharmony_ci    }
213af6ab5fSopenharmony_ci
223af6ab5fSopenharmony_ci    function fn(ctor: SomeConstructor) {
233af6ab5fSopenharmony_ci        return new ctor("hello")
243af6ab5fSopenharmony_ci    }
253af6ab5fSopenharmony_ci
263af6ab5fSopenharmony_ci```
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_ci## ArkTS
293af6ab5fSopenharmony_ci
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci```
323af6ab5fSopenharmony_ci
333af6ab5fSopenharmony_ci    class SomeObject {
343af6ab5fSopenharmony_ci        public f: string
353af6ab5fSopenharmony_ci        constructor (s: string) {
363af6ab5fSopenharmony_ci            this.f = s
373af6ab5fSopenharmony_ci        }
383af6ab5fSopenharmony_ci    }
393af6ab5fSopenharmony_ci
403af6ab5fSopenharmony_ci    function fn(s: string): SomeObject {
413af6ab5fSopenharmony_ci        return new SomeObject(s)
423af6ab5fSopenharmony_ci    }
433af6ab5fSopenharmony_ci
443af6ab5fSopenharmony_ci```
453af6ab5fSopenharmony_ci
463af6ab5fSopenharmony_ci## See also
473af6ab5fSopenharmony_ci
483af6ab5fSopenharmony_ci- Recipe 014:  Use ``class`` instead of a type with call signature (``arkts-no-call-signatures``)
493af6ab5fSopenharmony_ci
503af6ab5fSopenharmony_ci
51