Javascript 如何在typescript中检查变量类型
我有一个类型为any的JS对象,我想检查它的内容并获得正确类型的值,所以我设想了这样一个函数Javascript 如何在typescript中检查变量类型,javascript,typescript,Javascript,Typescript,我有一个类型为any的JS对象,我想检查它的内容并获得正确类型的值,所以我设想了这样一个函数 function getRequiredField<T>(config: any, name: string): T { if (config[name] === undefined) throw new Error(`Required field ${name} is missing`); return config[name] as T; } 函数getRequired
function getRequiredField<T>(config: any, name: string): T {
if (config[name] === undefined) throw new Error(`Required field ${name} is missing`);
return config[name] as T;
}
函数getRequiredField(配置:any,名称:string):T{
如果(config[name]==未定义)抛出新错误(`Required field${name}缺少`);
将config[name]返回为T;
}
现在我想检查config[name]的类型,并确保它与T相同。我如何才能做到这一点
谢谢您的帮助。您可以使用操作符检查它是否是T
的类型实例
config[name] instanceof Sprite;
这将返回
Boolean
主类型值。no,您不能,因为t
不是一个值,并且在运行时不存在t
是一个类型,并且在编译时删除类型。您不能在运行时将t
用作valueYes@AlekseyL。我知道我不能将t与的实例一起使用,也不能将的typeof
一起使用。有没有办法解决这个问题?相关:配置从何而来?我猜您正在寻找某种json模式validator@AlekseyL. 这正是我想要做的,config是通过config=required('myfile.json')加载的json对象代码>