Skip to content

Lint for one-member abstract class when a simple function will do (Style Guide). #57160

@pq

Description

@pq

From the style guide:

AVOID defining a one-member abstract class when a simple function will do.

Unlike Java, Dart has first-class functions, closures, and a nice light syntax for using them. If all you need is something like a callback, just use a function. If you're defining an class and it only has a single abstract member with a meaningless name like call or invoke, there is a good chance you just want a function.

GOOD:

typedef bool Predicate(item);

BAD:

abstract class Predicate {
  bool test(item);
}

Metadata

Metadata

Assignees

Labels

devexp-linterIssues with the analyzer's support for the linter packagelegacy-area-analyzerUse area-devexp instead.type-enhancementA request for a change that isn't a bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions