SuperAPI AI 工具集

dart-use-primary-constructors

通用与其它

查看项目

更新于 10-16 05:47

技能介绍

用途:帮助用户编写、重构或调试使用 Dart 主构造函数特性的代码,并迁移到新的构造语法。

版本要求:Dart 3.13 及以上默认启用;Dart 3.12 为实验特性,需通过 --enable-experiment=primary-constructors 或在 analysis_options.yaml 的 analyzer.enable-experiment 中列出 primary-constructors 启用;Dart 3.11 及更早不支持。

主要能力:在类头部直接声明非重定向生成式构造函数与实例变量,把字段声明、参数声明和初始化合并为声明参数声明;支持在非 late 字段初始化器中引用构造参数(主初始化器作用域);空体可用分号简写;类体内构造函数可用缩写语法。参数分三类:声明参数(var/final)、初始化参数(this./super. 前缀)、普通参数(无修饰符,仅初始化期可用)。支持 const 主构造函数、扩展类型(必须使用主构造函数,表示字段不能用 var)、类体内 this : 初始化列表与断言、this {...} 构造体,以及 new/factory 缩写语法。

使用方式:将字段与构造参数移到类头部,如 class User(final String name, final int age);;自定义初始化与断言放入类体内 this : 块;用主初始化器作用域直接计算字段;类体内生成式构造函数必须重定向到主构造函数。多数错误与 lint 可用 dart fix 修复。

限制:late 字段初始化器不能访问主构造参数;参数在初始化阶段不可赋值;字段不可重复初始化;带主构造函数的类、mixin class 或 enum 不能声明其他非重定向生成式构造函数。常见错误包括 Invalid Late Access、fieldInitializedInInitializerAndDeclaration、nonRedirectingGenerativeConstructorWithPrimary。

适用场景:Dart 代码简化样板、类迁移重构、构造语法调试。具体平台与收费信息暂未提供。