2017-04-14 7 views
0

typescriptですでソートを行うのgit bashのコンパイラ型エラーを取得します。は私が</p> <p>私は角CLIでtypescriptですとWebPACKの角度バージョン4を使用しています、私はGitのbashのエラーが表示されますが、コードが正常に動作し

サービングを実行するときに、typescript算術演算子エラーが発生します。

ソート機能には、以下の問題があります。 ソートコードはjsの点では問題なく見えますが、tsではコンパイルされません。

はここtypescriptですでコンパイルするときに動作しますが、失敗した私のコードです:

getAllJobs =(): void => { 
     this.recentJobs = []; 
     let allJobs = []; 
     this.jobService.getAllJobs().then((allJobs: any) => { 

      //Error here - sort error here in typescript compiler 
      allJobs.sort((a: any, b: any) => { 
       return new Date(b.sortDate) - new Date(a.sortDate); 
      }); 

     }); 
    } 
+0

'Date'はオブジェクトであり、JavaScrあなたがオブジェクトを減算しているように見えるのはTypeScriptです。代わりに、 'return(new Date(b.stortDate))。valueOf()=(new Date(a.stortDate))。valueOf();'を使用してみてください。 –

答えて

2

それはDateがオブジェクトであり、あなたが算術演算子と一緒に使用しているので、彼らは互換性がないと考えているので、活字体は文句を言います。しかし、あなたがこれを行うときに実際にJavaScriptで起こるのは(new Date(b.sortDate)).valueOf() - (new Date(a.sortDate)).valueOf();です。ここで、new Date().valueOf()は数値を返します。

allJobs.sort((a: any, b: any) => { 
     return (+new Date(b.sortDate)) - (+new Date(a.sortDate)); 
}); 

または番号を返すnew Date().valueOf()を使用します:

あなたは数に日付を強要し、比較を行うために+演算子を使用することができます

allJobs.sort((a: any, b: any) => { 
     return (new Date(b.sortDate)).valueOf() - (new Date(a.sortDate)).valueOf(); 
}); 

はここで同様の問題ですあなたにとって興味深いTypeScriptリポジトリ:https://github.com/Microsoft/TypeScript/issues/5710

関連する問題