Typescriptは、タイプがany
の変数を作成しないようにします。 tsconfig.json
のnoImplicityAny
をtrue
に設定すると、タイプを指定しないとエラーになり、Typescriptはタイプをany
にしか設定できません。
一般的にあなたが...あなたの例のように、あなたのlet
に
let myNumber: number = 23;
をタイプを指定するとき...あなたがタイプ明示的を設定し、話します。これは、この変数をnumber
にするという意図を明確に伝えることを意味します。数値以外の値を割り当てると、エラーが発生します。 すべて明示的な型の変数は、コードの明瞭度を向上させるだけなので、何も問題はありません。
もう1つの方法は、変数を暗黙的にと入力することです。あなたは変数に数値リテラルを割り当てるので、活字体が変数の型を推論することができますし、それ数を検討します
let myNumber = 23;
:あなたは、宣言時にあなたの変数に値を代入するときにのみ行うことができます。いくつかのケースでは、労働組合のタイプのために、たとえば、inferrenceを上書きするのに便利です。
let myNumberOrText: number | string = 23;
あなたはtrue
にnoImplicitAny
セットを持っている場合は、any
への暗黙的なタイピングが禁止されています。それは暗黙的にany
に入力しているためそう...
let myAny = { FirstName: "John", LastName: "Doe" };
は...、エラーが発生します。明示的なバージョンは引き続き許可されます。活字体であなたが好ましく、クラスまたはインタフェースを宣言し、タイピングのためにそれを使用するが、だからあなたは(あなたがタイプPerson
を宣言したと仮定した場合)... ...
let myAny: any = { FirstName: "John", LastName: "Doe" };
を書き込むことができます。
let myPerson: Person = { FirstName: "John", LastName: "Doe" };
Typescriptの全体的なポイントは、JavaScriptに静的型を導入することです。変数をタイプany
で宣言すると、静的型付けの利点がなくなり、単純なJavaScriptを使用できます。
ありがとうございます。私は最後の質問があります:この行 'let myNumberOrText:number | string = 23; '変数の型がnumber o stringになると言っていますか?だから私は値 '23'で初期化することができますが、 '' hello ''で値を変更した後にできますか? – albert
@albert:そうです。 – Sefe