TypeScript newbie此處遷移現有項目。我們有貓鼬模型,類似於下面的代碼片段,並使用discriminatorKey
屬性:TypeScript:類型的參數不可分配
const task = new mongoose.Schema({
name: {
type: String
},
notes: {
type: String
}
}, {
discriminatorKey: 'type',
toObject: {
virtuals: true
},
toJSON: {
virtuals: true
}
});
這使我在編譯過程中出現以下錯誤:
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'.
我使用這些@types定義,這似乎是最近的一個:
"@types/mongoose": "^4.7.8"
我瞭解,該類型定義沒有指定discriminatorKey
(這是obviou當看到node_modules/@types/mongoose/index.d.ts
時狡猾可見),但我不明白(a)爲什麼(忽略?不同的版本?其他原因?),(b)我如何繞過這個錯誤?
(c)獎金問題:@types
定義的版本策略對我而言仍不清楚。我認爲,類型定義應該與實際庫的版本匹配,但是,通常看起來沒有匹配的版本 - 例如我們正在使用express
版本。 4.13.4,但沒有匹配的@types/express
版本可用。在這種情況下遵循的最佳做法是什麼?
文字受制於*額外的財產檢查*。搜索本頁上的術語:https://www.typescriptlang.org/docs/handbook/interfaces.html – cartant