Mongoose-hooks fungerer ikke med Typescript
Så vet noen hvorfor jeg kan få en Typescript-feil når jeg bruker en mongoose-hook og refererer til this. Jeg bruker ikke pilfunksjoner, og jeg vet om det leksikalske skopproblemet med det, men selv med anonyme funksjoner som dette:
UserSchema.pre("save", function(next) {
console.log(this.password);
next();
});
Den eksakte feilmeldingen er
'this' implicitly has type 'any' because it does not have a type annotation.
Noen som vet hvordan man kommer seg rundt dette?
Forresten, jeg bruker Typescript 2.5.2/NodeJS 8.2.1
Takk!
Svar #1
Prøv dette:
schema.pre("save", function(this: UserModel, next: any) {
console.log(this.password);
next();
});
Jeg tror du får feilen fordi du sannsynligvis har en TypeScript-konfigurasjon som sjekker for implicit any. Hvis du skriver 'this' i argumentene til hook-funksjonen, bør feilen bli løst.
Svar #2
prøv dette:
import {HydratedDocument} from 'mongoose'
schema.pre<HydratedDocument<IUser>>('save',function(next){})
i stedet for IUser, bruk grensesnittet ditt.
