You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为getAll()函数的Observable替换any为正确类型?

解决方法

你可以直接把Observable<any>中的any替换为你在http.get里已经定义的匿名类型,或者提前定义一个命名接口让代码更易维护。

方式1:直接使用匿名类型

直接将返回值类型改为Observable<{ results: CharacterData[]; info: CharacterInfo; }>,和http.get指定的类型保持一致:

getAll(): Observable<{
  results: CharacterData[];
  info: CharacterInfo;
}> {
  return this.http
    .get<{
      results: CharacterData[];
      info: CharacterInfo;
    }>(characterUrl)
    .pipe(map((el) => el));
}

方式2:定义命名接口(推荐)

先定义一个专门的接口描述返回结构,后续复用或修改都更方便:

// 提前定义接口
interface CharacterResponse {
  results: CharacterData[];
  info: CharacterInfo;
}

// 函数中使用该接口作为返回类型
getAll(): Observable<CharacterResponse> {
  return this.http
    .get<CharacterResponse>(characterUrl)
    .pipe(map((el) => el));
}

你的http.get已经明确指定了返回数据的结构,pipe(map(el => el))只是原样返回该数据,所以函数返回类型要和这个结构一致,这样TypeScript就能提供完整的类型检查和智能提示。

内容的提问来源于stack exchange,提问作者Nick AL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:54:16