Вы также можете использовать метод compareTo()
для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.
==
сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern()
, вы можете использовать оператор ==
для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.
Вы должны включить параметры. См. github ticket # 18586 , запись alxhub
9 августа 2017 г.
Машинопись должна быть способна выводить значения наблюдения и responseType статически, чтобы выберите правильный тип возврата для get (). Если вы передаете неправильный тип объектов, он не может вывести правильный тип возврата.
blockquote>login(credentials: Credentials): Observable<any> { return this.httpClient.post<any>(`${environment.USER_SERVICE_BASE_URL}`, {'username': credentials.username, 'password': credentials.password}, { headers: new HttpHeaders({'Content-Type': 'application/json'}), observe: 'response' }) .map((res) => ...
Способ, которым я обходился, без встроенных опций (что может привести к нечеткому коду) заключается в создании интерфейса для параметров запроса. Код выглядит следующим образом:
export interface IRequestOptions {
body?: any;
headers?: HttpHeaders | { [header: string]: string | Array<string> };
observe?: any;
params?: HttpParams | { [param: string]: string | Array<string> };
reportProgress?: boolean;
responseType?: "arraybuffer" | "blob" | "json" | "text";
withCredentials?: boolean;
}
Затем это используется как таковое:
const options: IRequestOptions = {
headers: new HttpHeaders({"Content-Type": "application/json"}),
observe: "response"
};
return this.httpClient.post(`${environment.USER_SERVICE_BASE_URL}`,
{"username": credentials.username, "password": credentials.password}, options)
.pipe(
map((res: HttpResponse<any>) => ...
);
Изменить для исходного сообщения для использования lettable
или pipeable
(что угодно текущее имя - сегодня). Операторы