我正在尝试实现一个方法,它采用一个键参数,该键参数是字符串或可索引类型接口IValidationContextIndex的实例.实现如下:
/**
* Gets all ValidationContext container values.
* @returns An array of ValidationContext instances contained in the cache.
*/
public static getValidationContextValues(key: IValidationContextIndex | string ): Array<ValidationContext> {
if (key instanceof IValidationContextIndex ) [
return Object.values(<any> key);
]
else {
const vci = ValidationContainer.cache[<string>key];
return Object.values(<any> vci);
}
}
Typescript为if块提供以下错误:
[ts] ‘IValidationContextIndex’ only refers to a type, but is being used as a value here.
有想法该怎么解决这个吗?
对于大多数接口,我认为可以添加一个类型属性(类型:’IValidationContextsIndex’;
),但在这种情况下不起作用,因为接口是一个可索引类型的接口….
解决方法:
有一种方法可以在运行时检查typescript中的类型,因为几乎所有内容都会在转换后成为一个对象,因此您可能需要遵循定义为user-defined typed guards的内容
原文地址:https://codeday.me/bug/20190828/1746974.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。