类型'播放器 |未定义"不能分配给类型"玩家"。类型"未定义"不可分配给类型"玩家".ts(2322)



我试图维护代码,但我的项目没有编译我有这个错误的方法,我可以从SocketID获得玩家名称,它告诉我像标题说那是未定义的。你能帮我修改一下这个方法让它工作吗?非常感谢

getPlayerFromSocketID(socketId: string): Player {
return this.players.find((p) => p.getSocketId() === socketId);
}
在其他类似的方法中,我没有得到error
removePlayer(playerName: string): void {
console.log('Removing player from playerManager : ' + playerName);
const player = this.players.find((p) => p.getName() === playerName);
if (player !== undefined) {
this.players.splice(this.players.indexOf(player), 1);
}
}
getPlayerFromSocketID(socketId: string): Player {

你说你要返回一个Player,但是代码实际上可以返回undefined,所以typescript指出了不匹配。因为undefined是可能的,所以更新返回类型:

getPlayerFromSocketID(socketId: string): Player | undefined {

或者,你可以把它去掉,然后typescript会为你计算出来:

getPlayerFromSocketID(socketId: string) {

相关内容

最新更新