私はこの新しい冒険を、タイスクリプトの学習で始めました。私はjavascriptでnodejsプロジェクトを作成しました。これをtypescriptに変換しています。私の考えは、すべてのメリットを見て、どこに問題があるのかを知ることです。どのパターンを使うべきかなどです。
このプロジェクトでは、mongoose javascriptライブラリを使用してmongodbデータベースを使用しています。私は、typescriptがコードをどのように変換するのかと苦労しています。簡単な言葉で:私はこの参照を失う。
問題の原因となる良い例を次に示します。事前に
mongoose javascriptコードをtypescriptに変換します。この参照が失われました
var personSchema = new mongoose.Schema({
created: {
type: Date,
default: Date.now
},
updated:{
type: Date,
},
});
personSchema.pre('save', function(next) {
// Make sure updated holds the current date/time
this.updated = new Date();
next();
});
var Person = mongoose.model('Person', personSchema);
セーブ機能この参照があります。これは、更新されたプロパティを持つ現在の人物の参照です。すべて順調。私はこのパターンをさまざまな例で見た。
これは私がnodejsプロジェクトで作業している初めてのことです。 typescriptですが、これは _this と交換されたコードをtranspilers後
interface IPerson extends mongoose.Document{
created:Date;
updated:Date;
}
var personSchema = new mongoose.Schema({
created: {
type: Date,
default: Date.now
},
updated: {
type: Date
}
});
personSchema.pre('save', (next) => {
// Make sure updated holds the current date/time
this.updated = new Date();
next();
});
export = mongoose.model<IPerson>('Person', personSchema);
:ここ
は、私は、単純なtypescriptです変換を試みた方法です。ファイルの上部に表示されますvar _this = this;。これは間違っています。新しいjavascriptファイルはpersonオブジェクトの参照を失います。
javascriptをtypescriptに正しく変換する方法を教えてもらえますか?私はこの種の問題をどのように解決すべきですか?いくつかのパターンがありますか?
私の最初の印象は、時には正式ではないJavaScriptをtypescriptに変換することですが、私は本当にそれが好きです。