== Why is this an issue? TypeScript allows declaring the type of a function in two different ways: - Function type: `() => number` - Object type with a call signature: `{ (): number }` The function type syntax is generally preferred for being more concise. == How to fix it Use a function type instead of an interface or object type literal with a single call signature. === Code examples ==== Noncompliant code example [source,typescript,diff-id=1,diff-type=noncompliant] ---- function apply(f: { (): string }): string { return f(); } ---- ==== Compliant solution [source,typescript,diff-id=1,diff-type=compliant] ---- function apply(f: () => string): string { return f(); } ---- ==== Noncompliant code example [source,typescript,diff-id=2,diff-type=noncompliant] ---- interface Foo { (): number; } ---- ==== Compliant solution [source,typescript,diff-id=2,diff-type=compliant] ---- type Foo = () => number; ---- == Resources === Documentation * TypeScript Documentation - https://www.typescriptlang.org/docs/handbook/2/functions.html#function-type-expressions[Function Type Expressions]