Contents
Contents

Only use double quotes for strings containing single quotes.

This rule is available as of Dart 2.0.0.

This rule has a quick fix available.

Incompatible rules: prefer_double_quotes

Details

#

DO use single quotes where they wouldn't require additional escapes.

That means strings with an apostrophe may use double quotes so that the apostrophe isn't escaped (note: we don't lint the other way around, ie, a single quoted string with an escaped apostrophe is not flagged).

It's also rare, but possible, to have strings within string interpolations. In this case, it's much more readable to use a double quote somewhere. So double quotes are allowed either within, or containing, an interpolated string literal. Arguably strings within string interpolations should be its own type of lint.

BAD:

dart
useStrings(
    "should be single quote",
    r"should be single quote",
    r"""should be single quotes""")

GOOD:

dart
useStrings(
    'should be single quote',
    r'should be single quote',
    r'''should be single quotes''',
    "here's ok",
    "nested ${a ? 'strings' : 'can'} be wrapped by a double quote",
    'and nested ${a ? "strings" : "can be double quoted themselves"}');

Usage

#

To enable the prefer_single_quotes rule, add prefer_single_quotes under linter > rules in your analysis_options.yaml file:

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_single_quotes