这是最佳实践吗?检查变量是否定义或赋值 null


const pictureEntity = updateUserDto?.picture
? await this.filesService.find(updateUserDto.picture)
: null;
if (pictureEntity) {
const pictureEntity.url = await this.filesService.getFileUrl(pictureEntity);
}

这是将值分配给图片实体的正确方法吗?基本上,如果未定义属性图片,则我不应该在filesService中使用服务查找,因为typeORM将返回在属性图片为null或未定义时找到的第一个值。

我正在这样做:

if (updateUserDto?.picture) {
const pictureEntity = await this.filesService.find(updateUserDto.picture);
}

但是 TS 会抱怨,因为我在 If 中声明了一个变量。

如果只想在设置updateUserDto?.picture时将pictureEntity设置为值,则您最初的尝试几乎是正确的,但是您只需要在if块之外定义变量即可设置这样的值

let pictureEntity;
if (updateUserDto?.picture) {
pictureEntity = await this.filesService.find(updateUserDto.picture);
}

请注意,您需要使用let而不是const,因为您现在在创建后分配给变量。另请注意,如果updateUserDto?.picture是伪造的,则将undefinedpictureEntity

默认值

你可以做:

const pictureEntity = updateUserDto?.picture && await this.filesService.find(updateUserDto.picture);

如果updateUserDtonullundefinedpictureEntity将被undefined。否则,它将await你的另一个承诺。

编辑:

这里也不需要const

if (pictureEntity) {
const pictureEntity.url = await this.filesService.getFileUrl(pictureEntity);
}

不使用const创建对象属性。

相关内容

  • 没有找到相关文章

最新更新