单个变量的多种类型(参数/返回类型)

Chr*_*lus 15 dart

我对 Dart 很陌生,如果我没有看到这部分,请原谅。

我想为函数输入创建一个联合类型。在 TS 中,这将是:

let variableInput: string | number
Run Code Online (Sandbox Code Playgroud)

typedef 并没有真正定义类型,但函数和枚举也没有真正的帮助。

另一方面,当函数返回两种类型中的一种或另一种时,它应该是什么样子?这里一定有什么我没看到的东西。

cre*_*not 12

Dart 中没有联合类型。

在 Dart 中执行此操作的方法是dynamic作为类型返回/接受:

dynamic stringOrNumber() { ... }

void main() {
  final value = stringOrNumber();

  if (value is String) {
    // Handle a string value.
  } else if (value is num) {
    // Handle a number.
  } else {
    throw ArgumentError.value(value);
  }
}
Run Code Online (Sandbox Code Playgroud)

另请参阅:https ://dart.dev/guides/language/sound-dart

  • 有关在 Dart 中获取此功能的一些讨论可以在这里找到:https://github.com/dart-lang/language/issues/145 (2认同)