Tengo un Dto que se parece a esto:
import { Type } from "class-transformer"; import { ArrayMinSize, IsArray, ValidateNested} from "class-validator"; import { ObjectId } from "mongoose"; export class MongoIdDto { @IsArray() @ValidateNested({each: true}) @ArrayMinSize(1) @Type(() => ObjectId) ids: ObjectId[] } Pero esto me arroja un error: 'ObjectId' only refers to a type, but is being used as a value here.
¿Cómo se produce este error?
Este es un error de importación común:
ObjectId se puede importar desde mongoose y desde mongoDB.
La importación de mangosta es un tipo
La importación de mongodb es una representación de clase del tipo ObjectId de bson
Entonces, para solucionar este problema, cambie su importación a: import { ObjectId } from "mongodb";
Pero en realidad hay una opción para validar MongoIds con esto:
export class MongoIdArrayDto { @IsMongoId({each: true}) @ArrayMinSize(1) ids: ObjectId[] }