【发布时间】:2021-08-31 11:39:55
【问题描述】:
我需要从请求正文中检查对象类型,然后根据该类型运行适当的函数,我尝试这样做:
export interface SomeBodyType {
id: string,
name: string,
[etc....]
}
export const someFunction = async (req: Request, res: Response) => {
const { body } = req.body;
if (body instanceof SomeBodyType) {
//run function A
} else {
// run function B
}
}
但它不起作用,导致我的SomeBodyType 向我返回错误:only refers to a type, but is being used as a value here.,
那么,在这种情况下,我如何检查body 的类型?
感谢您的帮助!
//// 编辑:
感谢@phn 的回答,我创建了这个通用函数来检查对象类型:
export const checkObjectType = <T>(body: T): boolean => {
return (body as T) !== undefined;
}
如果这个功能好,请看看并评论
【问题讨论】:
-
您不能为此使用接口,类型在运行时不存在。
标签: javascript typescript if-statement types