我是打字稿和Node.js的新手。我正在尝试分配一个响应,该响应是从对api接口的静态api调用获取的。我不想使用Object.keys或Obejct.values来获取所需的数据,但尝试为此使用typescirpt接口。
这是响应
// 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'] }
]}
这些响应也是动态的,但是只有键值发生了变化,而对象却没有变化,就像
{ ret: [ {'df':'df' : [ 'df', 'dfd']}]}
谢谢
答案 0 :(得分:0)
您需要定义一个带有签名<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="#all">
<xsl:output method="xml" omit-xml-declaration="no" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="Worker[Batch]">
<xsl:variable name="currElem" select="."/>
<xsl:for-each select="1 to Days">
<xsl:apply-templates select="$currElem" mode="replicate">
<xsl:with-param name="dayNo" select="."/>
</xsl:apply-templates>
</xsl:for-each>
<xsl:for-each select="1 to Units">
<xsl:apply-templates select="$currElem" mode="replicate">
<xsl:with-param name="dayNo" select="."/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
<xsl:template match="Worker" mode="replicate">
<xsl:param name="dayNo"/>
<Worker>
<xsl:sequence select="id, loc"/>
<RecordNumber><xsl:value-of select="$dayNo"/></RecordNumber>
<WorkerDays>1</WorkerDays>
<StartDate>
<xsl:value-of select="xs:date(StartDate) + xs:dayTimeDuration('P1D') * ($dayNo - 1)"/>
</StartDate>
</Worker>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
</xsl:template>
</xsl:stylesheet>
的接口
string: boolean
答案 1 :(得分:0)
这是类型定义
YourView.fillInSuperView(inset: UIEdgeInsets.zero)
无论如何,您都必须使用Objects.keys来枚举服务器