Javascript 如何在typescript中检查变量类型

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

我有一个类型为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;
}
函数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对象