TypeScript Fetch response.Json <t>-预期0个类型参数,但得到1个

时间:2018-07-14 16:39:01

标签: typescript fetch-api

原谅我的无知,但是我试图在TypeScript中实现访存,并且我一直在浏览示例,但无法对其进行编译。我是TypeScript和Promise的新手,我找到了以下示例:

How to use fetch in typescript

我正在尝试实现这一点:

private api<T>(url: string): Promise<T> {
        return fetch(url)
          .then(response => {
            if (!response.ok) {
              throw new Error(response.statusText)
            }
            return response.json<T>()
          })          
}

但是编译器显示错误:

[ts]期望使用0个类型的参数,但得到1个。

我不确定问题出在哪里,但是基本上我正在尝试实现一个包装API调用以返回项目数组的类,并且我已经尝试了async / await,但似乎没有任何工作。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

似乎不再存在签名,代替使用此代码:

final Context contextThemeWrapper = new 

ContextThemeWrapper(getActivity(), R.style.AppTheme_RED);
LayoutInflater localInflater = inflater.from(contextThemeWrapper);
final View view = localInflater.inflate(R.layout.fragment_workout_list, container, false);

是的,这将为您返回强类型数据。 下面是完整的代码片段。

response.json().then(data => data as T);

答案 1 :(得分:0)

我发现上面的答案有一个问题。 如果您有这样的JSON正文

{ "error" : "{ "message" : "some message" }" }
上面的

代码将返回带有一键错误和“ {{message”:“ some message”}}的对象。 所以最好使用

JSON.Stringify(data)