【发布时间】:2018-06-08 06:29:57
【问题描述】:
我有一个这样的函数模板:
function (..., args: any) {...}
我有一个名为CreateLobbyParameter 的课程:
export class CreateLobbyParameter {
userId: number;
gameMode: GameMode;
}
如果给定any 类型的args 参数与CreateLobbyParameter 不相似(例如{userId: 0, gameMode: 0},但不是{userId:0});我想处理这种情况。
我尝试过typeof(arg as CreateLobbyParameter),但它返回参数{userId: 0, gameMode: 0} 的字符串"object",而不是CreateLobbyParameter.
另外,arg instanceof CreateLobbyParameter 返回 false。
【问题讨论】:
-
不太清楚您要做什么,您是否要键入一个将
any作为参数的函数? -
GameMode是枚举还是其他类? -
您应该为
args定义一个接口,而不是将其键入为any。 -
GameMode 是一个枚举。
-
Johnny,但它的属性是灵活的,它们会根据它的位置而变化。
标签: javascript typescript casting typeof type-assertion