【问题标题】:Cannot omit 'new' keyword despite using Dart 2.0尽管使用了 Dart 2.0,但不能省略 'new' 关键字
【发布时间】:2018-11-02 23:02:05
【问题描述】:

当我运行我的应用程序的测试时,我得到了这个异常:

NoSuchMethodError: Attempted to use type 'SimplePipe' as a function. Since types do not define a method 'call', this is not possible. Did you intend to call the SimplePipe constructor and forget the 'new' operator?

我从这条错误消息中得出结论,我的项目实际上不是使用 Dart 2.0 而是使用 Dart 1.0。 不过,sdk 在pubspec.yaml 中设置为>=2.0.0-dev.53.0 <2.0.0

我的一个朋友在他的 PC 上在相同条件下运行相同测试时收到此错误消息。他已经尝试运行pub get

Dart 2.0.0-dev.54.0.flutter-46ab040e58 is incompatible with your dependencies' SDK constraints. Please run "pub get" again

pubspec.yaml:

name: timecoder_common
description: A Dart Libary containin all the shared logic
version: 0.0.1

environment:
  sdk: '>=2.0.0-dev.53.0 <2.0.0'

dependencies:
  uuid: "^0.5.3"
  json_annotation: "^0.2.3"
  http: "^0.11.3"
  rxdart: "^0.16.6"
  test: "^0.12.34"

dev_dependencies:
  build_runner: "^0.8.0"
  json_serializable: "^0.5.0"

【问题讨论】:

  • 你是如何尝试运行它的?如果是通过 VM,您可能需要 --preview-dart-2。如果您使用的是pub run,它应该是DART_VM_OPTIONS=--preview-dart-2 pub run test

标签: dart angular-dart dart-2


【解决方案1】:

Dart 2.0 SDK 默认不启用此功能(目前)。

对于 Flutter,您将 need to be on the latest SDK:

在这篇博文中,我们将深入了解我们在 Beta 3 本身中所做的具体改进。

对于命令行 VM,如 cmets 中所述,您必须选择加入:

dart --preview-dart-2 bin/main.dart

【讨论】:

  • 他的错误信息是使用SimplePipe,这是一个角度特征。
  • SimplePipe 是基于 rxdart Observables 构建的自定义类,不依赖任何 angular_dart 或 Flutter 库。
猜你喜欢
  • 2018-02-17
  • 1970-01-01
  • 1970-01-01
  • 2016-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多