8

angular2-meteor プロジェクトでCollection2を使用すると、デモのこれらの種類のコードは常にターミナルで警告を表示します。

戻り式に共通の型は存在しません。

コードを改善するにはどうすればよいですか? ありがとう

{
  createdAt: {
    type: Date,
    autoValue: function() {
      if (this.isInsert) {
        return new Date();
      } else if (this.isUpsert) {
        return {$setOnInsert: new Date()};
      } else {
        this.unset();
      }
    }
  }
}
4

1 に答える 1

9

すべての return ブランチには Date 型が期待されるため、if/else ブランチごとに Date 型を返す必要があります。または、2 つの異なる型を返すユニオンを作成することもできます。

いずれの場合も、タイプが日付の場合、3 番目の条件に対して null を返すことができます。それはタイプスクリプトで有効です。

autoValue: function() : Date|Object  {
    if (this.isInsert) {
        return new Date();
    } else if (this.isUpsert) {
        return {$setOnInsert: new Date()};
    } else {
        this.unset();
        return null;
    }
}
于 2016-03-26T03:46:46.643 に答える