13af6ab5fSopenharmony_ci#  Use ``class`` instead of a type with call signature
23af6ab5fSopenharmony_ci
33af6ab5fSopenharmony_ciRule ``arkts-no-call-signatures``
43af6ab5fSopenharmony_ci
53af6ab5fSopenharmony_ci**Severity: error**
63af6ab5fSopenharmony_ci
73af6ab5fSopenharmony_ciArkTS does not support call signatures in object types. Use classes instead.
83af6ab5fSopenharmony_ci
93af6ab5fSopenharmony_ci
103af6ab5fSopenharmony_ci## TypeScript
113af6ab5fSopenharmony_ci
123af6ab5fSopenharmony_ci
133af6ab5fSopenharmony_ci```
143af6ab5fSopenharmony_ci
153af6ab5fSopenharmony_ci    type DescribableFunction = {
163af6ab5fSopenharmony_ci        description: string
173af6ab5fSopenharmony_ci        (someArg: number): string // call signature
183af6ab5fSopenharmony_ci    }
193af6ab5fSopenharmony_ci
203af6ab5fSopenharmony_ci    function doSomething(fn: DescribableFunction): void {
213af6ab5fSopenharmony_ci        console.log(fn.description + " returned " + fn(6))
223af6ab5fSopenharmony_ci    }
233af6ab5fSopenharmony_ci
243af6ab5fSopenharmony_ci```
253af6ab5fSopenharmony_ci
263af6ab5fSopenharmony_ci## ArkTS
273af6ab5fSopenharmony_ci
283af6ab5fSopenharmony_ci
293af6ab5fSopenharmony_ci```
303af6ab5fSopenharmony_ci
313af6ab5fSopenharmony_ci    class DescribableFunction {
323af6ab5fSopenharmony_ci        description: string
333af6ab5fSopenharmony_ci        public invoke(someArg: number): string {
343af6ab5fSopenharmony_ci            return someArg.toString()
353af6ab5fSopenharmony_ci        }
363af6ab5fSopenharmony_ci        constructor() {
373af6ab5fSopenharmony_ci            this.description = "desc"
383af6ab5fSopenharmony_ci        }
393af6ab5fSopenharmony_ci    }
403af6ab5fSopenharmony_ci
413af6ab5fSopenharmony_ci    function doSomething(fn: DescribableFunction): void {
423af6ab5fSopenharmony_ci        console.log(fn.description + " returned " + fn.invoke(6))
433af6ab5fSopenharmony_ci    }
443af6ab5fSopenharmony_ci
453af6ab5fSopenharmony_ci    doSomething(new DescribableFunction())
463af6ab5fSopenharmony_ci
473af6ab5fSopenharmony_ci```
483af6ab5fSopenharmony_ci
493af6ab5fSopenharmony_ci## See also
503af6ab5fSopenharmony_ci
513af6ab5fSopenharmony_ci- Recipe 015:  Use ``class`` instead of a type with constructor signature (``arkts-no-ctor-signatures-type``)
523af6ab5fSopenharmony_ci
533af6ab5fSopenharmony_ci
54