Анализатор не работает в коде Visual Studio ... или это так? - PullRequest
0 голосов
/ 12 января 2020

В Visual Studio Code, похоже, не возникает ошибок, если параметр @required пропущен при вызове функции Dart. Нужно ли что-то делать, чтобы анализатор работал? Или ошибки помечаются, а я их просто не вижу? Любая помощь будет оценена ...

import 'package:meta/meta.dart';

void sayHello({@required String to, bool inEnglish}){

  if(inEnglish == null || inEnglish){
    print("Hello, $to");
  } else {
    print("Bonjour, $to");
  }
}

main(){
 sayHello(inEnglish: true); // output: Hello, null, no complaints about **to** missing
}

1 Ответ

2 голосов
/ 13 января 2020

Язык дартс имеет обязательные позиционные параметры, необязательные позиционные параметры и необязательные именованные параметры. К сожалению, Dart не поддерживает требуемые именованные параметры.

Аннотация @required на самом деле ничего не делает. Это просто обходной путь, добавленный Flutter, который анализатор может использовать для добавления предупреждения, когда вы не передаете параметр, помеченный им. Но это не помешает вам пропустить «обязательный» параметр, и код, который делает это, все равно будет компилироваться и работать на отлично.

...