Dart 对几种类型的通用约束并设置默认值

Kon*_*tin 7 generics default extend dart

为了方便起见,我想为 RxDart 类制作一些扩展类。但是我找不到用泛型做一些基本事情的方法,例如我需要将泛型类型限制为几种类型。这是我将如何在 C# 中实现它

MyGenericType<T> where T : bool, int { ... }
Run Code Online (Sandbox Code Playgroud)

因此将 T 限制为 bool 和 int 类型。我将如何在飞镖中做同样的事情?文档仅显示具有单一类型限制的示例,如下所示:

class MyGeneric<T extends SomeClass> ...
Run Code Online (Sandbox Code Playgroud)

我也尝试使用逗号,但它做了另一件事,它需要我的泛型类型来扩展它们,这不是我需要的。有可能吗?

另一个相关问题:我还需要为这些泛型设置默认值。同样,C# 等价物将是

T value = default(T);
Run Code Online (Sandbox Code Playgroud)

飞镖中有这样的东西吗?

lrn*_*lrn 1

不,也不。

Dart 没有多个约束或联合类型,因此您不能拥有包含 或 的类型变量boolint也不能拥有仅允许这些类型的值的普通变量。

Dart 类型也没有任何方法来定义默认值。使用可为 null 的类型并null作为默认值。Dart 中的所有类型都是对象类型,并且可以通过添加 使其可为空?