myFuncResult interface {
abc: string
}
function myFunc():myFuncResult {
if(something) return { abc:'abc' } //ok here
return 'result' //but this line gave me warning
}
我基于条件有两种结果类型(对象和字符串),如何在我的界面中声明呢?
答案 0 :(得分:2)
由于您要返回两个不同的类型/接口(可以是myFuncResult
或字符串),为什么不使用管道运算符创建并集类型?
function myFunc(): myFuncResult | string {
if (something)
return { abc:'abc' };
return 'result';
}
或者,您可以直接这样创建联合类型:
type myFuncResult = { abc: string } | string;
function myFunc(): myFuncResult {
if (something)
return { abc:'abc' };
return 'result';
}
答案 1 :(得分:0)
发生这种情况是因为myFuncResult
不等于接口类型myFuncResult
。您可以使用变量abc
返回类型myFunc(): myFuncResult {
if (something)
return { abc:'abc' } //ok here
return {abc: 'result'} //but this line gave me warning
}
:
null
更新:
此外,如果符合条件,您可以返回myFunc():myFuncResult {
if (something)
return { abc:'abc' } //ok here
return null;
}
:
'x-ms-documentdb-partitionkey' = '[' + ($partitonKey) + ']'