Si todo lo relacionado con Faker les da error, deben de utlizar el nombre de faker entre llaves. así
import{ faker }from"@faker-js/faker";
Creo que al método add debería hacerlo privado, así no se puede acceder desde fuera de la clase. Ya que su finalidad es ser utilizado internamente por el método create
Me tarde un rato en saber por que me daba error el metodo "create" era por que tenia creationAt y UpdatedAt en las propiedades de la interfaz Product y Category
lo mismo me paso y solamente borre esas propiedades, ya me estaba desesperando por que me salía error
A mi el product-memory.service.ts elmetodo update me estaba arrojando el siguiente error:
Type 'Product | undefined' is not assignable to type 'Product'. Type 'undefined' is not assignable to type 'Product'.ts
De acuerdo al error para asigmarlo al this.products[index] lo ajuste asi, pero no si esta bien:
3 meses después, pero la solución es agregar un ! justo después del index. De esta manera:
const prevData = this.products[index]!;
Esto ocurre porque Typescript se volvió más estricto y al agregar este '!' le estamos diciendo a Typescript: no te preocupes que te aseguro que no es undefined el id. He tenido múltiples errores en el curso gracias a que está desactualizado, pues Typescript ha cambiado considerablemente estos últimos años.
Espero haya sido de ayuda.
Hola. Buenas tardes. En mi caso me da este error. Property 'number' does not exist on type 'DatatypeModule'. Quisiera saber como lo puedo resolver... Gracias
El error puede ser por la versión del faker, yo lo solucioné así:
Perdon la ignorancia, no he visto el otro curso, pero que difrencia existe entre el model y el dto?
Buen día, porque si Product es una interface no la implementan, sino la extienden, no entiendo ?
Esta clase me dejo muy perdido, toco cosas de otro curso y las puso ahi sin mas, en vez de tomarse el tiempo y crearlas explicando por que esta creando las cosas en vez de solucionar los conflictos que genero
Me parece más lógica que el método "create" sea privado y el método "add" sea quien lo llame y esté público.private create(data: CreateProductDto): Product { const newProduct = { ...data, id: faker.datatype.number(), creationAt: faker.date.recent(), category: { id: data.categoryId, name: faker.commerce.department(), creationAt: faker.date.recent(), updatedAt: faker.date.recent(), image: faker.image.imageUrl() } } return newProduct; }
add(data: CreateProductDto): Product { const newProduct = this.create(data) this._products.push(newProduct); return newProduct; }
porque si no los ves en el orden vas a estar perdido todo el tiempo.
A quienes les aparezca un error respecto al import de faker, les recomiendo lo siguiente:
Aplicar el siguiente comando en la terminal: npm install --save-dev @faker-js/faker
Luego implementamos el import de la siguiente manera: import { faker } from '@faker-js/faker';
Para mayor información visitar la web oficial:
Hay cambios con faker, se debe de instalar como dependencia import { faker } from '@faker-js/faker';create (data: CreateProductDto) : Product { const newProduct = { id: faker.number.int(), creationAt: new Date(), updatedAt: new Date(), category: { id: data.categoryId, name: faker.commerce.department(), image: faker.image.urlPicsumPhotos(), creationAt: new Date(), updatedAt: new Date(), }, ...data, } return this.add(newProduct); }js npm install @faker-js/faker --save-dev y se debe importar de este modo ```js
import { faker } from '@faker-js/faker';