跳到主要內容

unnecessary_library_name

穩定
推薦
可修正

library 宣告中不要有函式庫名稱。

詳細資訊

#

請勿library 宣告中加入函式庫名稱。

函式庫名稱並非必要。

函式庫不需要函式庫宣告,但可以加入宣告以附加函式庫文件和函式庫 Metadata。宣告 library; 就足以應付這些用途。

函式庫名稱的唯一用途是讓 part 檔案回指其擁有的函式庫,但 part 檔案應優先使用字串 URI 回指函式庫檔案,而不是函式庫名稱。

如果將函式庫名稱加入函式庫宣告,就會產生名稱衝突的風險。如果同一個程式中的兩個函式庫具有相同的函式庫名稱,就會發生編譯時期錯誤。為了避免這種情況,函式庫名稱往往會很長,包含套件名稱和路徑,只是為了避免意外的名稱衝突。這使得這類函式庫名稱難以閱讀,甚至對文件撰寫也沒有用處。

不良範例

dart
/// This library has a long name.
library magnificator.src.helper.bananas;
dart
library utils; // Not as verbose, but risks conflicts.

良好範例

dart
/// This library is awesome.
library;

part "apart.dart"; // contains: `part of "good_library.dart";`

啟用

#

若要啟用 unnecessary_library_name 規則,請在您的 analysis_options.yaml 檔案中的 linter > rules 下方加入 unnecessary_library_name

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_library_name

如果您改為使用 YAML map 語法來設定 linter 規則,請在 linter > rules 下方加入 unnecessary_library_name: true

analysis_options.yaml
yaml
linter:
  rules:
    unnecessary_library_name: true