gpt4 book ai didi

visual-studio-code - Dart/vscode:将函数本身作为构造函数的参数传递时,强制执行函数参数类型

转载 作者:行者123 更新时间:2023-12-03 02:53:19 26 4
gpt4 key购买 nike

正如主题所暗示的那样,当函数本身作为参数传递给类构造函数时,如何在编辑器中强制执行函数参数类型(例如VSCode)?这适用于复杂类型。在下面的简单示例中,使用错误的(int)参数而不是正确的(String)参数调用传递的add()函数时,vscode linter不会打ic:

class ChildClass {

final Function add;
ChildClass(this.add);

...
add('this is a string'); <---- HOW TO ENFORCE STRING ARGUMENT TYPE?
add(5); <----- EDITOR (VSCODE) should hiccup currently doesn't
}

class ParentClass {
int _add(String text) { <--- ARGUMENT OF TYPE STRING
// some code
}

final childClass = ChildClass(_add); <-- pass add() as argument to ChildClass ctor

}

不知道这是一个vscode linter问题还是一个dart问题或两者。思想大加赞赏。

最佳答案

您可以内联指定函数类型

class ChildClass {

final int Function(String text) add;

或作为typedef
typedef AddFn = int Function(string text);

class ChildClass {

final AddFn add;

也可以看看
  • https://github.com/dart-lang/sdk/blob/master/docs/language/informal/generic-function-type-alias.md
  • https://www.dartlang.org/guides/language/language-tour#typedefs
  • 关于visual-studio-code - Dart/vscode:将函数本身作为构造函数的参数传递时,强制执行函数参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52635669/

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