Me encuentro tratando de usar decoradores con las propiedades privadas nativas de javascript (#) y estos primeros 'reconocer' que están en uso no funcionan.
Lo identifiqué usando los decoradores del validador de clases en las propiedades privadas de mis objetos de valor.
El error que recibo en mi editor de código es: Los decoradores no son válidos aquí
Ejemplo:
import { IsString } from 'class-validator'; Class Person { @IsString() #name: string; constructor(name: string) { this.#name = name; } get name(): string { return this.#name; } }Okey como lo sugiere VLAZ:
Los campos privados en JS son completamente privados e inaccesibles para cualquier cosa desde el exterior. Por lo tanto, tiene sentido que no se puedan decorar: el decorador no tiene forma de acceder a ellos.
Esto es completamente correcto, así que cuando miré más de cerca el objeto de valor me di cuenta de que tiene propiedades de get públicas, por lo que al probar es posible usar decoradores en esas propiedades.
Dejando algo como:
import { IsString } from 'class-validator'; Class Person { #name: string; constructor(name: string) { this.#name = name; } @IsString() get name(): string { return this.#name; } }