原谅我的无知,但是我试图在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,但似乎没有任何工作。任何帮助将不胜感激。
答案 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)