在 Dart 中,给定可空类型“T?”,如何获取不可空类型“T”

Mar*_*rcG 3 types non-nullable dart

给定一些可为空的类型T?,如何获得相应的不可为空的类型T

例如:

T? x<T extends int?>(T? value) => value;
Type g<T>(T Function(T) t) => T;
Type type = g(x);
print(type); // Prints "int?"
Run Code Online (Sandbox Code Playgroud)

现在我想获得不可为空的类型。我如何创建该函数convert以便:

Type nonNullableType = convert(type);
print(nonNullableType); // Prints "int"
Run Code Online (Sandbox Code Playgroud)

小智 6

如果您有 的实例T?,并且您正在尝试执行预期类型为 的操作T,则可以T!在 dart 显示错误的任何地方使用 use 。它并不完全是从T?to的转换T,它只是进行空检查的快捷方式。