nodejs+ts+typeorm ts报错

image.png
BlogType是我定义的实体类

import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm';
import { Blog } from './blog';

@Entity()
export class BlogType {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    type_name: string;

    @OneToMany(() => Blog, blogs => blogs.blog_type)
    blogs: Blog[];
}

这是findOne的定义

    findOne(id?: string | number | Date | ObjectID, options?: FindOneOptions<Entity>): Promise<Entity | undefined>

控制台能输出值

BlogType { id: 1, type_name: '随笔' }

ts提示返回的是undefined,就很蒙,如果我给返回值限制类型为undefined,就会反过来提示
image.png

阅读 2.7k
1 个回答

typeRepository.findOne的返回结果是 Promise<Entity | undefined>,把undefined的结果处理掉就好了呀

====== 补充 ========

let result = await findOne(id)
if(result) dealWithResult(result)

我是这个意思,边界情况总得解决一下吧。别人类型声明就是告诉你,findOne返回的结果可能是undefined(刨除了promise相关的表达),如果是undefined你后面的逻辑就全是错的,所以你要处理,这也是声明存在的意义呀

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题