TypeScript Neuling hier ein vorhandenes Projekt migrieren. Wir haben Mungo-Modelle, die auf den folgenden Ausschnitt ähnlich aussehen und verwenden Sie die discriminatorKey
Eigenschaft:TypeScript: Argument des Typs ist nicht zuweisbar
const task = new mongoose.Schema({
name: {
type: String
},
notes: {
type: String
}
}, {
discriminatorKey: 'type',
toObject: {
virtuals: true
},
toJSON: {
virtuals: true
}
});
Das gibt mir die folgende Fehlermeldung während der Kompilierung:
src/models/task.ts(12,3): error TS2345: Argument of type '{ discriminatorKey: string; }' is not assignable to parameter of type 'SchemaOptions'.
Object literal may only specify known properties, and 'discriminatorKey' does not exist in type 'SchemaOptions'.
Ich verwende diese @types Definition, das scheint eine der letzten zu sein:
"@types/mongoose": "^4.7.8"
ich verstehe, dass die Typdefinitionen nicht angeben, die discriminatorKey
(dies ist obviou schlau sichtbar bei node_modules/@types/mongoose/index.d.ts
), aber ich verstehe nicht (a) warum (Aufsicht?) andere Version? anderer Grund?), (b) Wie kann ich diesen Fehler umgehen?
(c) Bonusfrage: Die Versionierungsstrategie der @types
Definitionen ist mir noch unklar. Ich würde annehmen, dass die Typdefinitionen mit der Version der eigentlichen Bibliothek übereinstimmen sollten, jedoch scheint es oft keine passende Version zu geben - z. Wir verwenden express
Version. 4.13.4, aber es gibt keine passende @types/express
Version verfügbar. Was ist die beste Vorgehensweise in diesem Fall?
Literale unterliegen * Excess Property Checks *. Suchen Sie nach dem Begriff auf dieser Seite: https://www.typescriptlang.org/docs/handbook/interfaces.html – cartant