用户控制器:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
错误 TS2322:键入“用户 | undefined' 不可分配给类型'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;
}
Run Code Online (Sandbox Code Playgroud)
无法弄清楚如何解决这个问题。
正如错误所示,您正在尝试分配类型“User | undefined'(userRepository.findOne(),传递不存在的用户 ID 时的预期行为)来键入“User”(常量用户)。
由于 user 也可以是未定义的,因此您必须更改const user: User为const user: User | undefined.
既然有
if (user) {
ctx.status = 200;
ctx.body = user;
}
Run Code Online (Sandbox Code Playgroud)
之后,我猜用户可能是未定义的。
| 归档时间: |
|
| 查看次数: |
6798 次 |
| 最近记录: |