Dart 3.3中Extension types无法使用?报错需启用inline-class特性
Dart 3.3 Extension Types 报错:需启用 'inline-class' 特性
我尝试使用Dart 3.3的新特性Extension Types,采用官方示例代码:
extension type IdNumber(int id) { // 包装int类型的 '<' 运算符 operator <(IdNumber other) => id < other.id; // 不声明 '+' 运算符,因为ID号做加法没有实际意义 }
但在关键字type处收到错误提示:
This requires the 'inline-class' language feature to be enabled.
我的Flutter版本信息如下:
Flutter 3.19.0 • channel stable • https://github.com/flutter/flutter.git Framework • revision bae5e49bc2 (6 days ago) • 2024-02-13 17:46:18 -0800 Engine • revision 04817c99c9 Tools • Dart 3.3.0 • DevTools 2.31.1
我已尝试在pubspec.yaml中添加以下配置,但问题仍未解决:
analyzer: enable-experiment: - inline-class
解决步骤
- 指定Dart语言版本
在pubspec.yaml中添加或更新环境配置,确保SDK版本要求为3.3.0及以上:
environment: sdk: '>=3.3.0 <4.0.0'
- 使用专门的分析器配置文件
在项目根目录创建analysis_options.yaml(若不存在),写入以下配置:
analyzer: language: enable-experiment: - inline-class
注:pubspec.yaml中的分析器配置有时无法被正确识别,优先使用analysis_options.yaml。
重启IDE
修改配置后完全重启你的编辑器/IDE(如VS Code、Android Studio),确保配置生效。确认Dart版本
运行以下命令验证当前使用的Dart SDK版本:
dart --version
确保输出显示3.3.0或更高版本。
内容的提问来源于stack exchange,提问作者Vladyslav Ulianytskyi
相关产品推荐
相关产品推荐

