0

我正在尝试维护代码,但我的项目没有编译我从可以从 SocketID 获取玩家名称的方法中遇到此错误,它告诉我,就像标题一样,它是未定义的。你能帮我修改一下这个方法让它工作吗?非常感谢您

getPlayerFromSocketID(socketId: string): Player {
    return this.players.find((p) => p.getSocketId() === socketId);
}

在像这样的其他方法中,我没有收到错误

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);
    }
 }
4

1 回答 1

0
getPlayerFromSocketID(socketId: string): Player {

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

getPlayerFromSocketID(socketId: string): Player | undefined {

或者,您可以将其关闭,然后打字稿会为您解决:

getPlayerFromSocketID(socketId: string) {
于 2021-10-12T17:55:25.770 回答