跳到主內容

type_literal_in_constant_pattern

穩定
核心
提供修復

不要在常量模式中使用型別字面量。

詳情

#

如果您想測試物件是否具有型別 Foo,請改寫成 Foo _

錯誤示例

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

正確示例

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

如果您確實想測試匹配到的值(您期望其型別為 Type)是否等於型別字面量 Foo,則可以使用 const (Foo) 來忽略此 lint。

錯誤示例

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

正確示例

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

啟用

#

要啟用 type_literal_in_constant_pattern 規則,請將 type_literal_in_constant_pattern 新增到您的 analysis_options.yaml 檔案中 linter > rules 下方

analysis_options.yaml
yaml
linter:
  rules:
    - type_literal_in_constant_pattern

如果您使用的是 YAML map 語法來配置 linter 規則,請在 linter > rules 下方新增 type_literal_in_constant_pattern: true

analysis_options.yaml
yaml
linter:
  rules:
    type_literal_in_constant_pattern: true