SuperAPI AI 工具集

dart-modern-features

编程与开发

查看项目

更新于 10-16 06:22

技能介绍

用途:在编写或审查面向 Dart 3.0 及以上版本的代码时,指导使用现代、简洁且零成本的语言特性;也用于将旧版 Dart 代码重构为 Records、扩展类型、类修饰符、空感知集合元素、点简写和数字分隔符等写法。

主要能力:

  • Records:用匿名不可变聚合结构打包多个值,适合函数返回多值或临时分组数据,避免为简单多返回值专门建类。
  • 类修饰符:用 final、base、interface、sealed 限制库外子类型化方式,如 interface class 可被实现不可被继承,base class 可被继承不可被实现,final class 不可继承也不可实现。
  • 扩展类型:为已有类型提供零成本包装,在无运行时开销下限制操作或添加领域行为。
  • 数字分隔符:用下划线提升大数字面量可读性,如 1_000_000。
  • 通配符:用 _ 表示有意不使用的变量或参数,避免为规避未使用警告而造名。
  • 空感知元素:在集合字面量中用 ? 前缀按非空条件包含元素,替代简单的集合 if 判空。
  • 点简写:上下文可推断时省略类型名,如 LogLevel currentLevel = .info。

使用方式:按上述特性直接改写代码;查找可现代化点时,可用正则 if\s*(\w+\s*!=\snull)\s\w+ 搜索判空集合 if,用 \b\d{6,}\b 搜索缺少分隔符的长数字。模式匹配、switch 表达式与解构请改用 dart-use-pattern-matching;封闭类层次转 sealed 类型请改用 dart-seal-type-hierarchies。

限制:当 pubspec.yaml 的 SDK 约束仍支持 Dart 2.x(如 sdk: '>=2.19.0 <4.0.0')时,不要应用这些特性,否则会引入语法错误;公开 API 的 Records 字段超过 3 个时,建议改用专用类或扩展类型。其他细节暂未提供。