Dart中带有泛型的扩展方法:无法从方法中返回动态类型的值

问题描述 投票:1回答:1

给出此

extension<T> on List<T> {
  List<T> addAtTheEnd(T value) {
    return this.addAllAtTheEnd(<T>[value]);
  }

  List<T> addAllAtTheEnd(List<T> values) {
    return [
      ...this,
      ...values,
    ];
  }
}

在代码编辑器中,this.addAllAtTheEnd(<T>[value])用下划线表示:

A value of type 'List<dynamic>' can't be returned from method 'addAtTheEnd' because it has a return type of 'List<T>'.

这对我来说听起来不合逻辑,因为addAllAtTheEnd方法没有编译错误,我在调用站点(addAtTheEnd)上明确定义了泛型的类型,而我正在使用this来表示我是哪种类型正在调用该方法。

为什么这不起作用,如何使它起作用?

generics dart extension-methods
1个回答
0
投票

编辑:这不是答案,但是我无法在移动设备上将其删除

© www.soinside.com 2019 - 2024. All rights reserved.