I'm having to use the !
null-check override when accessing a field that has an optional constructor argument. I'm wondering if there's a better way to do this that I've not realized.
This optional, nullable field gets assigned a value in the constructor body if no argument is supplied.
class AuthService { http.Client? httpClient; AuthService({this.httpClient}) { httpClient ??= http.Client(); } }
Later when using httpClient
I need to provide !
even though it will never be null...
http.Response response = await httpClient!.post(createUri, body: jsonEncode(requestBodyMap));
... otherwise the dart analyzer tells me: The method post cannot be unconditionally invoked because the receiver can be null
.
When I use the late
keyword, Lint checking is telling me the "assign-if-null" will never happen...
class AuthService { late http.Client httpClient; AuthService({this.httpClient}) { httpClient ??= http.Client(); // ← lint says this is useless & will never run } }
... because httpClient
can never be null.
Should I just ignore Lint?
Should I be doing something completely different?
https://stackoverflow.com/questions/66995919/dart-null-safety-need-to-use-even-with-with-optional-constructor-parameter April 08, 2021 at 08:46AM
没有评论:
发表评论