You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart扩展类型内使用@redeclare注解报错如何解决?

解决Dart扩展类型中@redeclare注解未定义的问题

问题根源

@redeclare是Dart 3.4.0及以上版本才引入的注解,用于允许扩展类型重写其实现接口的成员。你的Dart SDK版本为3.3.0(稳定版),尚未包含该特性,因此会触发“Undefined name 'redeclare'”错误。

可行解决方案

1. 升级Dart SDK到3.4.0+稳定版

这是最直接的解决方式,升级后@redeclare会由dart:core库默认提供,无需额外导入:

  • 若使用Flutter,执行命令:flutter upgrade,同步升级Flutter及配套的Dart SDK;
  • 纯Dart项目可通过官方渠道下载最新稳定版,或执行dart pub upgrade更新依赖链中的SDK版本。

2. 不升级SDK的临时替代方案

Dart 3.3.0的扩展类型不支持重写接口成员,可通过以下方式调整代码:

  • 自定义新方法替代重写运算符:
extension type MyString(String _) implements String {
  int getCodeUnit(int index) => codeUnitAt(index);
}
  • 若需保留运算符形式,改用普通扩展而非扩展类型:
extension MyStringExtension on String {
  int operator [](int index) => codeUnitAt(index);
}

内容的提问来源于stack exchange,提问作者Jaafar Melhem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:13:12