13af6ab5fSopenharmony_ci#  Constructor function type is not supported
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-ctor-signatures-funcs``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS does not support the usage of the constructor function type.
83af6ab5fSopenharmony_ciUse lambdas instead.
93af6ab5fSopenharmony_ci
103af6ab5fSopenharmony_ci
113af6ab5fSopenharmony_ci## TypeScript
123af6ab5fSopenharmony_ci
133af6ab5fSopenharmony_ci
143af6ab5fSopenharmony_ci```
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci    class Person {
173af6ab5fSopenharmony_ci        constructor(
183af6ab5fSopenharmony_ci            name: string,
193af6ab5fSopenharmony_ci            age: number
203af6ab5fSopenharmony_ci        ) {}
213af6ab5fSopenharmony_ci    }
223af6ab5fSopenharmony_ci    type PersonCtor = new (name: string, age: number) => Person
233af6ab5fSopenharmony_ci
243af6ab5fSopenharmony_ci    function createPerson(Ctor: PersonCtor, name: string, age: number): Person
253af6ab5fSopenharmony_ci    {
263af6ab5fSopenharmony_ci        return new Ctor(name, age)
273af6ab5fSopenharmony_ci    }
283af6ab5fSopenharmony_ci
293af6ab5fSopenharmony_ci    const person = createPerson(Person, 'John', 30)
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci```
323af6ab5fSopenharmony_ci
333af6ab5fSopenharmony_ci## ArkTS
343af6ab5fSopenharmony_ci
353af6ab5fSopenharmony_ci
363af6ab5fSopenharmony_ci```
373af6ab5fSopenharmony_ci
383af6ab5fSopenharmony_ci    class Person {
393af6ab5fSopenharmony_ci        constructor(
403af6ab5fSopenharmony_ci            name: string,
413af6ab5fSopenharmony_ci            age: number
423af6ab5fSopenharmony_ci        ) {}
433af6ab5fSopenharmony_ci    }
443af6ab5fSopenharmony_ci    type PersonCtor = (n: string, a: number) => Person
453af6ab5fSopenharmony_ci
463af6ab5fSopenharmony_ci    function createPerson(Ctor: PersonCtor, n: string, a: number): Person {
473af6ab5fSopenharmony_ci        return Ctor(n, a)
483af6ab5fSopenharmony_ci    }
493af6ab5fSopenharmony_ci
503af6ab5fSopenharmony_ci    let Impersonizer: PersonCtor = (n: string, a: number): Person => {
513af6ab5fSopenharmony_ci        return new Person(n, a)
523af6ab5fSopenharmony_ci    }
533af6ab5fSopenharmony_ci
543af6ab5fSopenharmony_ci    const person = createPerson(Impersonizer, "John", 30)
553af6ab5fSopenharmony_ci
563af6ab5fSopenharmony_ci```
573af6ab5fSopenharmony_ci
583af6ab5fSopenharmony_ci
59