Dart / vscode: применять типы аргументов функции при передаче самой функции в качестве аргумента конструктору - PullRequest
0 голосов
/ 04 октября 2018

Как предполагает субъект, как можно применять типы аргументов функции в редакторе (скажем, VSCode), когда сама функция передается в качестве аргумента конструктору класса?Это касается сложных типов.В приведенном ниже простом примере vscode linter не вызывает сбои при вызове переданной функции add () с неверным (int) аргументом, а не с правильным (String) аргументом:

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 вопрос линтера или вопрос дротика или оба.Мысли высоко ценится.

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете указать типы функций inline

class ChildClass {

   final int Function(String text) add;

или как typedef

typedef AddFn = int Function(string text);

class ChildClass {

   final AddFn add;

См. Также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...