Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 是否将自定义对象属性初始化为未定义类型?_Typescript - Fatal编程技术网

Typescript 是否将自定义对象属性初始化为未定义类型?

Typescript 是否将自定义对象属性初始化为未定义类型?,typescript,Typescript,我正在初始化自定义typescript对象,如下所示: { game: false ? new Game() : undefined, } 虽然这允许typescript推断该属性的类型,但我必须禁用一个有用的eslint规则。这似乎也不是我们想要的方法。有更好的方法吗?您可以有条件地添加游戏属性 const obj = { ...(condition && { game: new Game() }) }; console.log(obj.game); 现在,如

我正在初始化自定义typescript对象,如下所示:

{
    game: false ? new Game() : undefined,
}

虽然这允许typescript推断该属性的类型,但我必须禁用一个有用的eslint规则。这似乎也不是我们想要的方法。有更好的方法吗?

您可以有条件地添加游戏属性

const obj = {
  ...(condition && { game: new Game() })
};

console.log(obj.game);
现在,如果
条件为true,它应该具有游戏属性,如果条件为false,它应该返回undefined

要使eslint满意,您可以使用可选游戏属性定义对象类型,并将其分配给您的对象

interface Object {
  game?: GameType;
}

const obj: Object = {
...(condition && { game: new Game() })
};

const o={game:未定义为game |未定义,}?为什么不事先定义对象的类型?