是否有与c#相当的语法来指定泛型类型上的类型约束,例如在c#-like syntax where TBase is SomeType中:

class StackPanel<TBase> extends Panel<TBase> where TBase : SomeType{

}

推荐答案

您可以按如下方式指定类型约束:

class StackPanel<TBase extends SomeType> extends Panel<TBase> {
}

language specification人说:

类型参数T的后缀可以是extends子句,该子句指定upper bound代表T.如果不存在extends子句,则upper boundObject.如果类型参数是其类型的超类型,则为静态类型警告.类型变量的边界是类型注释的一种形式,对生产模式中的执行没有影响.

Dart相关问答推荐

为什么我们在dart 里有工具?

AnimatedContainer 可以为其高度设置动画吗?

如何使我的Flitter应用程序的导航抽屉(Navigation Drawer)透明?

如何在Flatter中更改复选框边框 colored颜色 ?默认情况下,它显示为黑色,但我希望它显示为灰色

如何根据用户在Flitter中的时间显示问候,如早上好、下午好或晚上好

在Dart streams中,listen和forEach有什么区别?

FInal和top-level lazy初始化

在Flutter 中使用 import 'dart:html' - 我需要额外的依赖项吗?

将ListTile图标向左对齐

不推荐使用AnteStorStateofType,请改用findAncestorStateOfType

是否有必要为Flatter安装Android Studio,或者可以用什么替代Android Studio?

Flutter – 连续两个文本,左边一个溢出

Opa vs Dart vs Haxe vs CoffeeScript

谷歌的 Dart 编程语言的作用是什么?

Dart 中的多行字符串

如何在 Dart 中扁平化map列表?

Dart 中的 Math.round() 在哪里?

如何在 base64 中编码 Dart 字符串?

Dart 中的const和final关键字有什么区别?

你如何在 Dart 中构建一个单例?