我有一个像这样的功能模板:

function (..., args: any) {...}


我有一个叫做CreateLobbyParameter的类:

export class CreateLobbyParameter {
    userId: number;
    gameMode: GameMode;
}


如果给定了any,则键入的args参数与CreateLobbyParameter相似(例如{userId: 0, gameMode: 0},但与{userId:0}相似);我想处理这种情况。

我尝试过typeof(arg as CreateLobbyParameter),但是它为参数"object"而不是{userId: 0, gameMode: 0}返回字符串CreateLobbyParameter.

同样,arg instanceof CreateLobbyParameter返回false。

最佳答案

像JavaScript一样对待它。

var userId = arg.userId;
var gameMode = arg.gameMode;
if (userId && gameMode) {
   var myCreateLobbyParameter = new CreateLobbyParameter {
      userId = userId,
      gameMode = gameMode
   }
}


然后,您将拥有一个真正的CreateLobbyParameter对象,或者您可以对不符合标准的参数进行任何处理。

07-22 21:34