在Visual Studio Code中,当调用Dart函数时忽略@required参数时似乎不会出现错误。我必须做些什么才能让分析器工作吗?或者错误被标记了,我只是看不到它们?任何帮助都将不胜感激...
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条答案
按热度按时间qxgroojn1#
更新
从Dart 2.12开始,
required
关键字取代了@required
meta注解。有关详细信息,请查看official FAQ。原始答案
Dart语言有必选的位置参数、可选的位置参数和可选的命名参数。遗憾的是,Dart不支持必选的命名参数。
@required
注解实际上没有做任何事情。它只是Flutter添加的一个解决方案,当你没有传递一个标记有它的参数时,分析器可以使用它来添加一个警告。但它不会阻止你省略“required”参数,这样做的代码仍然可以很好地编译和运行。