2017-06-07 3 views
0

として処理した場合、より良いのは、私が持っているとしましょう例を挙げて説明します。活字力チェックプロパティ連想配列

class Model{ 
    property1: number; 
    property2: number; 
} 

let model= new Model; 

私は良い

モデル[「プロパティ1」] =「sdaef」//を行うと! typescriptですチェックし、それが数字で、財産は今、私は「問題

var test = model["nonExistingProp"]; // NO ERRORS ?? 

良いある存在しないため

VARテスト= model.nonExistingProp //エラーがスローされ、エラーに

を与える必要があります知っています文字列(連想配列)とその型からプロパティを知るのに十分なので、以前の例のようにエラーをスローしないで、nonExistingPropと言うと、連想配列に対してこの種の型チェックを強制する方法があるので、プロパティと最初の例のようなタイプのチェックをしたか?

おかげ

答えて

1

活字体は十分にスマートであるが、これは型チェッカを歩き回るの形として使用されたオブジェクトにインデックスを付けるときのためのレガシー機能です。

--noImplicitAny(他の--strictフラグに加えて)を使用すると、より安全なチェックが行われ、その式でエラーが発生します。

チームは--strictフラグの下に配置されているフラグは、&のエラーチェックの編集でずっと良い経験を提供するとチームが信じているものです。

+0

ところで、私は厳密にそのファイルだけをチェックすることができますか? – Ahmed

+0

この時点では、プロジェクト全体に渡っていません。 –

+0

ローカルに適用できるjsファイルに追加されたts-checkフラグのようなものがあるかもしれないと思った – Ahmed