コンパイル時に特定の TypeScript エラーを無視する方法があるかどうか知りたいです。
私は基本的に、大規模なプロジェクトを手がけるほとんどの人が抱えるのと同じ問題を抱えています。これキーワードであり、すべてのクラス メソッドをコンストラクターに配置したくありません。
次のような例があります:
これは完全に有効なJSを作成し、これキーワードの問題ですが、例でわかるように、TypeScript コンパイラは、キーワード this がそのスコープ内では有効ではないため、そのコードをコンパイルできないと通知します。ただし、問題のないコードが生成されるので、なぜエラーになるのかわかりません。
では、特定のエラーを無視するように指示する方法はありますか?時間が経てば、エラーを管理する良い方法が見つかると思います。これキーワードですが、現時点ではかなり悲惨な状況だと思います。
== 編集 ==
(この質問の文脈と部分的な暴言に興味がない限り、読まないでください)
これらすべてに少し背景を加えて、私がただの変人ではないこと (皆さんの多くはまだそう思っていると思いますが)、そして、これらのエラーを許容できるようにしたい正当な理由があることを示したいと思います。
ここに私が以前にした質問をいくつか挙げます。これらはTypeScriptのいくつかの大きな問題(私見)を浮き彫りにしています。現在 これ実装。
Typescript での this の子スコープに関する問題
https://typescript.codeplex.com/discussions/429350(そして一番下にコメントをいくつか書きます)
私が抱えている根本的な問題は、すべてのロジックが一貫したスコープ内にあることを保証する必要があり、ノックアウト、jQuery など、およびクラスのローカル インスタンス内のものにアクセスできる必要があることです。以前は、var self = this;
JavaScript のクラス宣言内でこれを実行し、うまく機能していました。以前の質問のいくつかで述べたように、今はそれができないため、スコープを保証できる唯一の方法はラムダ メソッドを使用することです。また、クラス内でメソッドとしてこれらを定義できる唯一の方法はコンストラクター内です。この部分は個人の好みに大きく左右されますが、その構文を使用することが単なる回避策ではなく推奨パターンとして分類されていると人々が考えているように見えるのは恐ろしいことだと思います。
TypeScriptはまだアルファ版で、これから多くの変更が加えられることはわかっています。そして、もっと良い対処法が見つかることを心から願っています。これしかし、現在は TypeScript を動作させるためにすべてを大混乱に陥れるか (これは TypeScript に移行している数百のファイル内です)、この場合はコンパイラよりもよくわかっている呼び出しを行うか (非常に危険であることはわかっています)、コードを適切に保ち、これを処理するためのより良いパターンが出てきたら移行できるようにしています。
また、余談ですが、TypeScript が新しい JavaScript 機能と既知の構文を可能な限り取り入れ、それに近づこうとしていることを多くの人が喜んでいることは知っています。これは素晴らしいことですが、TypeScript は JavaScript の次のバージョンではないので、最新かつ最高の公式 JavaScript 実装を使用したい人は引き続きそうすることができるので、言語にいくつかの構文糖を追加しても問題はないと思います。
ベストアンサー1
著者の特定の問題はthis
解決されたようですが、エラーを無視することについて疑問が提起されており、エラーを無視する方法を探してここにたどり着いた人のために:
エラーを適切に修正したり、すでにここで提案されているようなより適切な回避策を使用したりすることが選択肢にない場合は、TypeScript 2.6(2017年10月31日リリース)の時点で、特定の行のすべてのエラーを無視する方法// @ts-ignore
対象行の前にコメントを使用します。
言及された文書十分に簡潔ですが、要約すると:
// @ts-ignore
const s : string = false
この行のエラー報告を無効にします。
ただし、これは、エラーを修正する場合、または のようなハックを使用すると、行のすべての型チェックが失われるよりもはるかに問題が発生する場合にのみ、最後の手段として使用してください(x as any)
。
特定のエラーを指定することに関しては、現在の(2018年半ば)状態が議論されている。こちら、デザイン会議メモ(2018年2月16日)および追加コメント基本的には
「結論なしまだ「
そして、この微調整を導入することに強く反対しています。