类型 'never[]' 缺少类型 'Observable<Customer[]>' 的以下属性
type 'never[]' is missing the following properties from type 'Observable<Customer[]>'
我想通过 get
Http
调用从我的后端获取 customers
列表。但是我无法在我的 component
.
中声明 array
of customers
我有customer.interface.ts这样的
export interface Customer {
_id?: string,
name: string,
email: string,
phone?: string,
address?: string,
age?: number
}
我有http.service.ts
get = (url: string): Observable<any> => {
return this.http.get(this.createUrl(url), { headers: this.getHeaders() });
}
在我的customer.service.ts
getCustomers(): Observable<Customer[]>{
return this._http.get(ApiConstants.getCustomers);
}
在我的customer.component.ts
customers$: Observable<Customer[]> = [];
ngOnInit(){
this.customers$ = this.customerService.getCustomers();
}
现在它在编译时在编辑器中的这一行 customers$: Observable<Customer[]> = []
给我一个错误。
Type 'never[]' is missing the following properties from type 'Observable<Customer[]>': isScalar, source, operator, lif and 5 more
这是怎么回事?
customers$
的类型是 Observable
,因此您不能为其分配空数组。所以你根本不需要定义它。这就足够了 ->
customers$!: Observable<Customer[]>;
如果 tsconfig.json
中的 "strictPropertyInitialization"
设置为 true
,请添加此 !
,否则可以省略它。当您不立即初始化 属性 时,需要此 !
。您可以将 "strictPropertyInitialization"
设置为 false
,然后省略 !
。你可以看看
此外,当你需要从某些东西中创建一个 Observable
时,你可以使用 of
RxJS 运算符将参数转换为可观察的序列。 https://rxjs.dev/api/index/function/of
一个补充是在 .get
之后添加转换,以便更清楚地了解类型。
getCustomers(): Observable<Customer[]> {
return this._http.get<Customer[]>(ApiConstants.getCustomers);
}
这个问题的回答可能会对您有所帮助
我想通过 get
Http
调用从我的后端获取 customers
列表。但是我无法在我的 component
.
array
of customers
我有customer.interface.ts这样的
export interface Customer {
_id?: string,
name: string,
email: string,
phone?: string,
address?: string,
age?: number
}
我有http.service.ts
get = (url: string): Observable<any> => {
return this.http.get(this.createUrl(url), { headers: this.getHeaders() });
}
在我的customer.service.ts
getCustomers(): Observable<Customer[]>{
return this._http.get(ApiConstants.getCustomers);
}
在我的customer.component.ts
customers$: Observable<Customer[]> = [];
ngOnInit(){
this.customers$ = this.customerService.getCustomers();
}
现在它在编译时在编辑器中的这一行 customers$: Observable<Customer[]> = []
给我一个错误。
Type 'never[]' is missing the following properties from type 'Observable<Customer[]>': isScalar, source, operator, lif and 5 more
这是怎么回事?
customers$
的类型是 Observable
,因此您不能为其分配空数组。所以你根本不需要定义它。这就足够了 ->
customers$!: Observable<Customer[]>;
如果 tsconfig.json
中的 "strictPropertyInitialization"
设置为 true
,请添加此 !
,否则可以省略它。当您不立即初始化 属性 时,需要此 !
。您可以将 "strictPropertyInitialization"
设置为 false
,然后省略 !
。你可以看看
此外,当你需要从某些东西中创建一个 Observable
时,你可以使用 of
RxJS 运算符将参数转换为可观察的序列。 https://rxjs.dev/api/index/function/of
一个补充是在 .get
之后添加转换,以便更清楚地了解类型。
getCustomers(): Observable<Customer[]> {
return this._http.get<Customer[]>(ApiConstants.getCustomers);
}
这个问题的回答可能会对您有所帮助