gpt4 book ai didi

typescript - 类型 'User | undefined' 不可分配给类型 'User'

转载 作者:行者123 更新时间:2023-12-04 01:01:55 24 4
gpt4 key购买 nike

用户 Controller :

import { User } from './user';

export class UserController {
public static async getuser(ctx: BaseContext) {
const userRepository: Repository<User> = getManager().getRepository(User);
const user: User = await userRepository.findOne(ctx.params.id); // error on this line

if (user) {
ctx.status = 200;
ctx.body = user;
}
}

我收到一个错误:

error TS2322: Type 'User | undefined' is not assignable to type 'User'. Type 'undefined' is not assignable to type 'User'.



user.ts 文件(我在上面导入的这个文件):
@Entity('users')
export class User {
@PrimaryGeneratedColumn()
id: number | undefined;

@Column({ type: 'varchar', nullable: true, unique: true })
username: string | undefined;

@Column({ type: 'text' })
password: string | undefined;

@CreateDateColumn()
createdAt: Date | undefined;

@UpdateDateColumn()
updatedAt: Date | undefined;
}

无法弄清楚,如何解决这个问题。

最佳答案

正如错误所说,您正在尝试分配类型“用户 |未定义”(userRepository.findOne(),传递不存在的用户的 id 时的预期行为)输入“用户”(const 用户)。

由于用户也可以是未定义的,你必须更改 const user: Userconst user: User | undefined .

既然有

if (user) {
ctx.status = 200;
ctx.body = user;
}

紧接着,我猜用户可能是未定义的。

关于typescript - 类型 'User | undefined' 不可分配给类型 'User',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58149453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com