Olá. A pergunta pode fugir um pouco do projeto iniciado no curso, mas creio que minha dificuldade seja no TS pois o mesmo código JS funciona normalmente. Estou migrando minha api nodejs de JS para TS e ao utilizar o mongoose conforme o código abaixo, recebo uma mensagem de erro ao chamar "this" dentro do método "pre". Erro: element implicitly has an any type because type 'typeof globalThis' has no index signature. Creio que o erro está no contexto de "this" mas tentei mudar com "bind" e não consegui. Tentei mudar a utilização de arrow functions para function normal porém apresenta erro informando que a propriedade dataCadastro não existe em Document, ou seja no escopo global. Como fazer para o this referenciar meu escopo de objeto Schema?
const userFields = {
nome: {
type: String,
trim: true,
index: true,
required: true
},
dataCadastro: { type: Date, default: Date.now, required: true }
}
let Schema = new mongoose.Schema(userFields, { versionKey: false });
Schema.plugin(autoIncrement, {inc_field: 'codigo'});
Schema.pre('save', next => {
if (!this.dataCadastro)
this.dataCadastro = new Date();
next();
});;
export default Schema;