[解決済み] TypeScriptとは何ですか?なぜJavaScriptの代わりにTypeScriptを使うのですか?[クローズド]
質問
TypeScriptとはどのような言語なのか、教えてください。
JavaScriptや利用可能なライブラリではできないことで、検討する理由となるようなことは何ですか?
どのように解決するのですか?
<ブロッククオートこの回答は、TypeScriptがまだなかったころに書いたものです。 ということです。5年経った今、この概要は問題ありませんが で Lodewijkの回答 より深く知りたい方は、以下をご覧ください。
1000フィートビュー...
タイプスクリプト は JavaScript のスーパーセットで、主にオプションの静的型付け、クラス、インターフェイスを提供します。大きな利点の1つは、IDEが一般的なエラーを発見するための豊富な環境を提供できるようになることです。 コードを入力しながら .
どういう意味か理解するために、以下をご覧ください。 マイクロソフトの紹介ビデオ の言語についてです。
大規模なJavaScriptプロジェクトでは、TypeScriptを採用することで、より堅牢なソフトウェアになる可能性がありますし、通常のJavaScriptアプリケーションが動作する場所にデプロイすることも可能です。
オープンソースですが、サポートされているIDEを使用した場合のみ、入力中に賢いインテリセンスを得ることができます。当初、これはMicrosoftのVisual Studioだけだった(以下のブログ記事でも言及されている)。 ミゲル・デ・イカザ ). 最近では 他のIDEもTypeScriptをサポートしています。 .
他にも同じような技術があるのですか?
あるのは コーヒースクリプト しかし、それは本当に別の目的を果たすものです。IMHOは、CoffeeScriptは人間にとって読みやすさを提供しますが、TypeScriptもまた、深い読みやすさを ツール オプションの静的型付け(下記参照)により 最近のブログ記事 をもう少し詳しく説明します)。また ダーツ が、これはJavaScriptを完全に置き換えたものだ(ただし はJavaScriptのコードを生成することができます。 )
使用例
例として、TypeScriptを紹介します。 タイプスクリプト・プレイグラウンド )
class Greeter {
greeting: string;
constructor (message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
そして、これが生成するJavaScriptは次のとおりです。
var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
};
return Greeter;
})();
TypeScriptでは、メンバ変数やクラスメソッドのパラメータの型が定義されていることに注目してほしい。これはJavaScriptに翻訳する際には削除されるが、IDEやコンパイラがコンストラクタに数値型を渡すなどのエラーを発見するために使用される。
また、明示的に宣言されていない型も推論することができる。
greet()
メソッドは文字列を返します。
TypeScriptのデバッグ
多くのブラウザとIDEは、ソースマップによる直接のデバッグをサポートしています。詳しくは Stack Overflow の質問を参照してください。 Visual Studio で TypeScript コードをデバッグする
もっと知りたい?
この回答は、TypeScriptがまだ注目されていたころに書いたものです。以下のサイトをご覧ください。 Lodewijkの回答 の質問に対して、より最新の情報を提供します。
関連
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vueにおけるv-forループオブジェクトのプロパティ
-
[解決済み】TypeErrorの解決方法。未定義またはヌルをオブジェクトに変換できない
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] JavaScriptの「new」キーワードとは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vueネットワークリクエストソリューション ネイティブネットワークリクエストとjsネットワークリクエストライブラリ
-
Vueの要素ツリーコントロールに破線を追加する説明
-
jsを使った簡単な照明スイッチのコード
-
vueのグローバルがscss(mixin)を導入。
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
JavaScriptのgetElementById、getElementsByTagNam、getElementsByClassNameの違いと使い方
-
[解決済み】typescriptのデコレーターを実装するには?