mongooseとtypescriptを使用してアプリケーションを構築しています。私が作ったシンプルなモデルです:Mongooseタイピングの問題の種類スクリプト
import * as callbackMongoose from 'mongoose';
var mongoose = callbackMongoose;
mongoose.Promise = global.Promise;
const Schema = mongoose.Schema;
var userSchema = new Schema({
username: String,
email: String,
hash: String
});
export default mongoose.model('User', userSchema);
それはうまく動作しますが、私はプロパティにアクセスする前に各ドキュメントをいずれかにキャストする必要があります。私はこれを行うことができると言いましたガイドをお読みください。
interface IUser extends mongoose.Document {
username: String;
email: String;
hash: String;
}
export default mongoose.model<IUser>('User', userSchema);
私の問題は、タイプマングースは、プロパティDocument
を持っていないようだということです。また、プロパティObjectId
もありません。私が何かにマングースをキャストし、これらのメンバーを使用すると、それはうまく動作します。それはタイピングの問題のようです。
そうように私はマングースタイピングをインストール:
npm install @types/mongoose --save
タイピングは、スキーマのための作業を行うと、彼らは私が使用している他のすべてのライブラリに適しています。これらの型定義に何か問題がありますか?私は何か間違っているのですか?これは完全な例である
npm install @typings/mongoose --save
:
私は、変数にインポートを割り当てたという事実がわかりました。 'Database.ts'で説明したのと似たアプローチを使って修正しましたので、あなたの答えは正しいです。ありがとう! – user5505266