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

Dart中能否为TypeA变量显式指定正确类型替代var?

解决方案

直接将类对象赋值给变量时,Dart会将其类型推断为Type,而Type类型无法被调用实例化。要解决这个问题,你需要明确引用类的构造函数,并为变量指定对应的函数类型:

class A{
  int i = 1;
  A(this.i);
}

A instance = A(1);

// 显式指定类型为「接受int参数、返回A实例」的函数
A Function(int) TypeA = A.new;

// 调用时传入构造函数所需的int参数
A secondInstanceOfA = TypeA(1);

关键说明

  • Dart中类名A本身代表的是类的Type对象,而非构造函数引用;要获取默认构造函数的引用,需使用A.new。
  • 显式指定TypeA的类型为A Function(int),完全匹配A类默认构造函数的签名(接收一个int参数,返回A实例),这样编译和运行时都不会报错。

内容的提问来源于stack exchange,提问作者Александр

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 10:37:34