Estoy tratando de obtener una instancia de usuario basada en la id (lo mismo sucede con otros atributos como el email . Dentro del Servicio, este es mi código:
@Injectable() export class UserService { @InjectRepository(User) private readonly repository: Repository<User>; async findOne(id: number): Promise<User> { const user = await this.repository.findOne(id); return user; } }y mi entidad de usuario es:
@Entity() export class User { @PrimaryGeneratedColumn() public id: number; @Column({ type: 'varchar', length: 120 }) public name: string; @Column({ type: 'varchar', length: 120 }) public email: string; } El problema es que siempre recibo este error: src/api/user/user.service.ts - error TS2559: Type 'number' has no properties in common with type 'FindOneOptions<User>'.
Otros métodos como getAll funcionan bien:
public getAllUsers(): Promise<User[]> { return this.repository.find(); }¿Está utilizando la última versión de typeorm ? Luego bájelo a typeorm@0.2 porque @nestjs/typeorm@8.0 podría no ser compatible con el último todavía. Puede leer los cambios de typeorm@0.3 aquí: https://github.com/typeorm/typeorm/releases/tag/0.3.0
registre su archivo package.json y reemplace su versión de typeorm con esta "typeorm": "^0.2.34"