Pular para o conteúdo principal

type_literal_in_constant_pattern

Saiba mais sobre a regra de lint type_literal_in_constant_pattern.

Estável
Core
Correção disponível
Lançado no Dart 3.0

Não use padrões constantes com literais de tipo.

Detalhes

#

Se você quis testar se o objeto tem o tipo Foo, escreva Foo _.

RUIM:

dart
void f(Object? x) {
  if (x case num) {
    print('int or double');
  }
}

BOM:

dart
void f(Object? x) {
  if (x case num _) {
    print('int or double');
  }
}

Se você realmente quer testar se o valor correspondido (que você espera que tenha o tipo Type) é igual ao literal de tipo Foo, então este lint pode ser silenciado usando const (Foo).

RUIM:

dart
void f(Object? x) {
  if (x case int) {
    print('int');
  }
}

BOM:

dart
void f(Object? x) {
  if (x case const (int)) {
    print('int');
  }
}

Ativar

#

Para ativar a regra type_literal_in_constant_pattern, adicione type_literal_in_constant_pattern em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - type_literal_in_constant_pattern

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione type_literal_in_constant_pattern: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    type_literal_in_constant_pattern: true

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.