【发布时间】:2019-07-13 19:17:27
【问题描述】:
我是 typscript 和 nodejs 的新手。我正在尝试分配一个响应,从 restful api 调用中获取它到 typescript 接口。我不想使用 Object.keys 或 Obejct.values 来获取所需的数据,但尝试使用 typecirpt 接口。
这是回复,
// this is dynamic in nature
{
return: [{
'domain1.com': true,
'domaim2.com': true,
'domain3.com': true
}]
}
域名键值不限于 3 ,可能是 n 。上面的响应甚至不是 json,但这就是我从响应中得到的。
我正在使用下面的ts接口来分配响应。
export interface ResponseString {
Res: string;
}
export interface ServerRes {
return: ResponseString[];
}
try {
data = await getServerResponse();
}
catch (e) {
console.error(e);
throw new Error("Exception: failure ..");
}
try {
const Servers: string[] = Object.keys(data.return[0]); // I want to use tyscrpit interface instread of object.keys to get the domains
for (const server of Servers) {
// to be done
}
catch(e) {
console.error(e);
}
请分享您对如何完成此操作的意见。
[更新]
我还收到了类似下面的其他 API 响应,
{ return: [
{ 'domainroot.com':'domain1.com' : ['some valu, 'some other value'] }
]}
这些响应也是动态的,但只有键值变化,而 hte 对象没有变化,就像
{ ret: [ {'df':'df' : [ 'df', 'dfd']}]}
谢谢,
【问题讨论】:
-
return is a reserved keyword。除了实际“返回”之外,用于其他东西不是一个好主意
-
好的,改为 retval 但我不确定如何将 {'key':true, 'key2',ture ......} 映射到接口。
-
为什么不想使用 Object.keys?这是枚举对象动态键的标准方法
-
我正在尝试通过到处使用接口来使其结构化。
标签: javascript typescript