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?