flutter - flutter lint 参数类型规则用法
问题描述
我如何控制我想应用于我的代码的女巫规则。我添加了 lint 包,但参数类型规则发生了很多。
我有很多来自 API 调用的动态数据,我尝试禁用主题,但没有奏效。我可以决定要应用哪些规则吗?有一些规则可以像 const 规则一样使代码更高效,将 lint 添加到活动项目可能会让人头疼,所以我认为是否值得?
我尝试禁用的当前规则:
argument_type_not_assignable: false
invalid_assignment: false
Article.fromMap throw 参数类型'dynamic'不能分配给参数类型'String'.dartargument_type_not_assignable
class Article {
String id;
String image;
String title;
Map contentEditor;
List<Map<String, dynamic>> teams;
List<Map<String, dynamic>> leagues;
String content;
String updateDate;
Article({
this.id,
this.image,
this.title,
this.contentEditor,
this.teams,
this.leagues,
this.content,
this.updateDate,
});
String getDateString() {
DateFormat formatter = DateFormat("MM/dd/yyyy");
return formatter.format(DateTime.parse(this.updateDate));
}
String getTimeString() {
final dateTime = DateTime.parse(this.updateDate).toLocal();
return DateFormat.Hm().format(dateTime);
}
Map<String, dynamic> toMap() {
return {
'id': id,
'image': image,
'title': title,
'contentEditorId': contentEditor,
'teams': teams,
'leagues': leagues,
'content': content,
'updateDate': updateDate
};
}
factory Article.fromMap(Map<String, dynamic> map) {
if (map == null) return null;
return Article(
id: map['id'],
image: map['image'],
title: map['title'],
contentEditor: map['contentEditor'],
teams: List<Map<String, dynamic>>.from(map['teams']?.map((x) => x)),
leagues: List<Map<String, dynamic>>.from(map['leagues']?.map((x) => x)),
content: map['content'],
updateDate: map['updateDate'],
);
}
String toJson() => json.encode(toMap());
factory Article.fromJson(Map json) => Article.fromMap(json);
}
我更喜欢这种方法
dynamic getPoints(dynamic property) {
if (property == null) {
return 0;
}
return property.won * 3 + property.draw;
}
比这个:
int getPoints(Map<String, int> property) {
if (property == null) {
return 0;
}
return property["won"] * 3 + property["draw"];
}
解决方案
argument_type_not_assignable
并且invalid_assignment
是错误,而不是 lints。
你可以通过修改你的analysis_options.yaml
文件来让 Dart 分析器忽略它们:
analyzer:
errors:
argument_type_not_assignable: ignore
invalid_assignment: ignore
但是,禁用这些规则没有任何意义。即使分析器不再抱怨违规,违规仍然是非法的,最终会产生编译错误。你希望int x = 'string';
做什么?
推荐阅读
- php - Json & php - getting the main element
- sql - 在前一个满足条件后如何检查组中任何行的值?
- reactjs - How do you get Material-UI Drawer to highlight the page it is currently at?
- javascript - Detect 2 spaces in whole string(sentence) with regex JS
- azure - Execute Kusto query present in the Table result
- c# - How can I control this response coming from C# backend project?
- google-apps-script - How to Use a Google Script to Change Contents of a Cell When the Sheet Name is Changed by the User
- java - 检查货币是否具有有效符号
- android - Xamarin android异步任务异常
- swiftui - swiftui 将视图发送到另一个视图以进行弹出