gpt4 book ai didi

dart - 使用泛型进行Dart类型检查

转载 作者:行者123 更新时间:2023-12-03 03:41:25 24 4
gpt4 key购买 nike

我有一个类:

  class StreamWithValue<T> extends Stream<T> {
T value;
...
}

现在:
  Stream<bool> _stream;
StreamWithValue<bool> get stream=> _stream;

即使它不正确,该编译也不会出错,因为显然_stream的类型不是StreamWithValue。有没有办法进行更严格的类型检查?我正在使用Dart 2.1.2,Android Studio 3.3.2。奇怪的是,编译器正确地在这里找到错误:
  StreamWithValue get stream2 => _stream;

最佳答案

默认情况下,Dart 2允许隐式向下转换到派生类型。要禁止它们,请在您的analysis_options.yaml文件中(必要时创建它)中设置:

analyzer:
strong-mode:
implicit-casts: false

这样做会产生分析错误:

The return type 'Stream' isn't a 'StreamWithValue', as defined by the method 'stream'.



您可能还对以下设置感兴趣:
analyzer:
strong-mode:
implicit-dynamic: false

有关更多信息,请参见 https://www.dartlang.org/guides/language/analysis-options

关于dart - 使用泛型进行Dart类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55093207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com