質問

ありがとうございます。記述に稿言語です。

何ができるのではなJavaScriptや図書館利用できない、これは私の理由を考えるのですか?

役に立ちましたか?

解決

私は最初にTQUESTSCRPCがまだあるときにこの答えを書きました ホットオフ - プレス5年後、これはOKの概要ですが見てください ata href="https://stackoverflow.com/a/35048303/6521"> Lodewijkの答え

1000ftビュー...

typescript は、主にオプションの静的型付け、クラス、およびインタフェースを提供するJavaScriptのスーパーセットです。大きな利点の1つは、コードを入力したときに共通のエラーを発見するための豊かな環境を提供できるようにすることです。

私がどういう意味なことを知るために、マイクロソフトの紹介ビデオを見てください。 a>言語で。

大規模なJavaScriptプロジェクトでは、定例JavaScriptアプリケーションが実行される場所ではまだ展開可能な一方で、TypeScriptを採用する可能性があります。

オープンソースですが、サポートされているIDEを使用する場合は、入力したときにのみ賢いIntellisenseだけが取得されます。当初、これはMicrosoftのVisual Studioだけでした( miguel de icazaからのブログ投稿にも記載されています。 )最近、その他のIDESは、TypesScriptサポートが

です。

そのような他の技術はありますか?

CoffeeScript をa)ありますが、実際には別の目的を果たします。 IMHO、CoffeeScriptは人間のための読みやすさを提供しますが、タイプリストはそのオプションの静的型タイピングを通してツールのための深い読みやすさを提供します(この最近のBlog Post もう少し批評)。 dart ですが、それはJavaScriptの置き換えに関する完全です。 htefs/dart-up-and-running/contents/chtml "rel=" nofollow noreferrer "> JavaScriptコードを生成できます。 / P>

例として、ここにはいくつかの種類があります( Typesscript Playground

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;
})();
.

TyptionScriptがメンバ変数とクラスメソッドパラメータの種類を定義する方法に注意してください。これはJavaScriptに変換されたときに削除されますが、IDEとコンパイラによってエラーを見つけるために使用されます。

明示的に宣言されていない種類を推測することもできます。たとえば、greet()メソッドは文字列を返します。

デバッグ型スクリプト

多くのブラウザとIDEは、SourceMapsを通じて直接デバッグサポートを提供します。詳細については、このスタックオーバーフロー質問を参照してください。 Visual Studio < / P>

もっと知りたい?

TypeScriptがまだホットオフ - プレスしたときにこの回答を最初に書きました。チェックアウト Lodewijkの答えこの質問にこの質問を追加してください。

他のヒント

稿の関係でJavaScript

稿では入力の上位集JavaScriptを編集するため平 JavaScript- typescriptlang.org.

JavaScriptのプログラミング言語と開発 EMCAの技術委員会39, であるグループの人々の多くの異なるステークホルダーTC39は委員会主催 ECMA:内部標準組織です。JavaScriptには多くの異なる実装により多くの異なるベンダーなどGoogle、Microsoft、Oracleなど)。の目的当サイトでは、以下のブラウザの共通語はます。

稿では上位集のJavaScript言語を単一のオープンソースのコンパイラで開発を中心に単一のベンダー:Microsoft.の目標稿ではチミスを早期よりタイプシステム及びJavaScriptの開発をより効率的です。

本稿が目的を達成、まず言語運用能力が不可欠です。

  1. 支援のための現代のJavaScript機能 -JavaScript言語のランタイム)を標準化を通じて ECMAScript ます。ないすべてのブラウザでJavaScriptのランタイムを支援すべての機能のすべてのECMAScript基準を参照のこ 概要).稿で利用することができる多くの最新のECMAScriptの特徴と変換して高ECMAScript目標の選んだ一覧 コンパイル目標 下の --target コンパイラオプション)。することができるも安心してお使い頂けることができるのに、それを使うモジュール、ラムダ機能クラスのオペレーターとdestructuring、残りの下位互換性の古いブラウザのJavaScriptラン

  2. 高機能タイプシステム -の支援は、ECMAScript標準とがなにより解釈される自然ではなく集計自然が可能です。タイプシステム稿は非常に豊かな内容:タenums、ハイブリッドの種類、ジェネリック医薬品、ユニオン/交差点の種類、アクセス修飾子です。の 公式サイト の稿についての概要これらの特徴です。稿のタイプシステムと他のほとんどの入力言語の場合にューに強固なものとします。

  3. 開発支援ツー -稿のコンパイラでは、バックグラウンド処理の両方をサポート増作成およびIDEに統合などでより簡単にナビゲートが特定の問題を検査可能性、refactorド.

稿の関係その他のJavaScript言語を対象に

稿では独自の理念に比べその他の言語のコンパイルが可能です。JavaScriptコードが有効にな稿コード稿では上位集が可能です。できるほどの名前を変更 .js ファイル .ts ファイルの使用を開始稿("JavaScriptの相互運用性"。稿ファイルの作成を読みやJavaScriptでの移動は可能との理解、コンパイルされた稿はない。稿成果を挙げJavaScriptを改善しながら、その弱点が潜んでいる。

一方で、将来の証明が現代ECMAScript基準およびコンパイルするJavaScriptのバージョンとバベルの一番人気。一方、言語とは全く異なるJavaScriptを対象とJavaScriptのように、CoffeeScript,Clojure,ダElm Haxe,Scala.jsり、全体のホストができます(この リスト).これらの言語ものではないか、ということを仲間とりがJavaScriptの未来が来鉛、走るのは大きなリスクを見定めながら十分な採用のための未来を保障されていなければならない。あまり見つけ出すのに苦労経験を積んだデベロッパーにそれぞれの言語のものものだとされるようになり堪能できます。Interopでは、JavaScriptでもかわい遠くから取り除かかJavaScriptの成長スパイラルを実現する

稿座の間にこれらの二極化とのバランスのリスクです。稿なリスク選択による。かなりの労力を使用していますが、JavaScriptではない全く異なる言語の優れたJavaScriptの相互運用性支援といった多くの採用です。

任意の静的タイピングタイプ推論

当サイトでは、以下のブラウザを動的に入力.このJavaScriptなどの型変数までは実際にインスタンス化を実行す。そのようなものです。稿加型のサポートをJavaScriptです。バグによって発生する偽の前提の一部変数の型で完全に解消して遊ぶ場合はごカード(どのように厳しいインターネットにアクセスコードの場合はインターネットにアクセスコードではます。

稿するタイピングの少くともしくは明示的に使用型推論.例えば: var x = "hello" に稿と同じ var x : string = "hello".のタイプだから推定される。でもまだ明示的に型の種類は、まだあきらやっているものに限が無効であることが判明した実行時エラーとなります。

稿できるようになっています入力によるデフォルトです。例えば、 function divideByTwo(x) { return x / 2 } 有効な機能稿るで呼び出すことができ 他の のようなパラメータでも、呼び出しで、文字列が明らかに ランタイム エラーになります。ようにするために使用されているJavaScriptです。この作品でない場合のタイプが明示的に割り当てのタイプがないと推定されるようにdivideByTwoとえば、稿は暗黙的にその割り当てのタイプ any.このdivideByTwo機能のタイプ署名を自動的になり function divideByTwo(x : any) : any.がコンパイラフラグを可にこの挙動: --noImplicitAny.このフラグできるような安全な手段という文字を入力す

種類のコストも点在しています。まず、学習曲線、および秒のすべてはもちろん、まだ少し時間を設定コードベースを活用した厳しいタイピングです。私の経験上、これらの費用は全くあまともなコードベースで共有する。 大規模な研究プログラミング言語とコード品質のGithub ることを示唆 "静的型付き言語では、一般に、以下の欠陥がよりの種類、強力な入力は弱いタイピングは同様のことについて".

なかなかおもしろいことに注意してく同じ論文によると、稿がエラーが発生しやすいJavaScript以外:

方正係数が期待できる言語 は、ceteris paribus、より多くの欠陥を修正。これらの言語はC,C++, JavaScript, 、Objective-C、Php、 エラーになります。の言語Clojure、ルスカラ、 稿, すべての負の係数を拡大することでこれらの言語は以下 調査の結果は欠陥の固定を設定します。

向井出支援

の開発経験稿には大幅な改善が可能です。IDEをお知らせリアルタイムに稿コンパイラー、種類豊富な情報です。この主な利点があります。例えば、稿まで、安心していrefactoringsのように変更全体にするumodel、をコード、きめ細やかなケアを行っていくインラインヘう機能には、図書室もご用意。も忘れてはならないことをしただけで、あっという間にオンラインで参照です。作成エラー報告のIDE赤squiggly線が忙しい符号といいます。すべてのすべてできるとのこと大きなゲインの生産性に比べて作業が可能です。で過ごす時間符号化の少ない時にデバッグしやすくなります。

があり、幅広いIdeに優れている支援稿は、Visual StudioコードWebStormの原子となります。

厳しいnullチェック

実行時エラーの形式 cannot read property 'x' of undefined または undefined is not a function 非常に一般的によくなJavaScriptコードです。箱から出して稿ての確率でのこれらの種類の誤差が発生ら利用できない変数はあまり知られていませんが、稿コンパイラの特性 any 入力変数).まだまだですが、どんなものでも可能で誤って活用する変数の設定 undefined.しかしながら、2.0版稿消すことができるこれらの種類の誤差の利用の非nullです。これは次のように動作します:

厳しいnullチェック可能--strictNullChecks コンパイラフラグ)を稿コンパイラすることはできません undefined 割り当てられる変数へのない限り、明示的に宣言しますのnullableタイプです。例えば、 let x : number = undefined 結果コンパイルエラーが発生します。こぴったりフィッ型理論から undefined ではない。ワンを定義することができ x する金型の numberundefined 修正す: let x : number | undefined = undefined.

一度タイプが知られていnullableとを意味するタイプも可能での値 null または undefined, に稿コンパイラで決定を制御フローに基づくタイプ分析か否かのコードを安全に利用できる変数です。そのときにチェック変数は undefined を通じて、例えば if 算書に稿コンパイラと推測されるのはその支部的なヘルプオーサリング-ツールの制御フローのないもnullableができる安全に使用すること。ここでは、簡単な例:

let x: number | undefined;
if (x !== undefined) x += 1; // this line will compile, because x is checked.
x += 1; // this line will fail compilation, because x might be undefined.

期間中は、2016年の会社設稿Anders Hejlsbergしました詳細な説明およびデモンストレーションはこの特徴: ビデオ (44:30 56時30分)までとなります。

編集

利用稿に必要なビルドプロセスをコンパイルにJavaScriptコードです。の構築プロセスは一般的にかプレゼンによってはもちろん、サイズのプロジェクトに関するに稿コンパイラのサンタル編集(--watch コンパイラフラグ)のその後のすべての変更が可能で作成されたものより高速になります。

に稿コンパイラでインラインソースの地図情報を生成します。jsファイルを作成します。地図ファイルです。源地図情報を使用できるデバッグ事のようにクロムDevToolsその他のIDEのもつラインをJavaScriptにも発生し稿.大きな役割を担っているというこのままの投資を維持しながら、生産性を検査変数の実行中に直接お稿のコードです。源地図情報作品かも始まったばかりであった前稿でデバッグ稿は、一般にどの場合にJavaScriptを使用。の this キーワードです。による変更後の意味の this キーワード周辺の閉鎖てES2015, this ありが実際に存在するかどうかには実行中に変数として呼 _this 参照 この答え).この混乱させていただくデバッグが一般的であれば問題ないことを知っていますので、検査のためにJavaScriptコードです。このバベルが同じような問題です。

ありその他の技を稿コンパイラできるように、発電遮断に基づくコード デコレータ, 発生モジュール搭載用コードの異なるモジュールシステムの解析 JSX.ただし、が必要になビルドツールのほか稿コンパイラです。例えば、希望する場合には、圧縮コードまでの追加その他のツールを構築プロセスです。

あ稿集のプラグイン可能 Webpack, グッズ, イサキ とんその他のJavaScriptのビルドツールがあります。に稿文書の一章 統合ビルドツール と思われるものについて。A linter まいにもビルド時にチェックしている。また多種の事業がまだ始まった稿と組み合わせ々ソフトバンクグループは技術のような角度の2の反応を、Ember,SystemJS,Webpack,グッズなど。

JavaScriptの相互運用性

以来、稿は密接に関連をJavaScriptで相互運用能力をもつかの余分な作業が必要で仕事をJavaScriptライブラリに稿. 稿定義 いように気をつける必要が稿コンパイラにあることを理解し関数呼び出しのように _.groupBy または angular.copy または $.fadeOut ないと不正な記述です。の定義のためにこれらの機能を設置 .d.ts ファイルです。

最も単純な形に定義できる可能性の識別子に使用します。例えば、 Lodash, 単線の定義ファイル declare var _ : any 可能にする他の機能または _, ものの、その後、まもなく間違い: _.foobar() する法律稿話ですが、もちろん、不正な通話を実行す。したい場合に適切な型のサポートやコード補完だ定義ファイルのニーズをより正確に参照 lodash定義 のための一例)です。

Npmモジュール を取り巻く流れを大きく変えるパッケージを自分の型定義は自動的に理解することを目指して稿コンパイラを参照 文書).たいその他のセミ人気のJavaScriptライブラリに含まれない独自の定義を誰かががなされたタイプの定義を通じて他のnpmモジュールです。これらのモジュールは頭"@種類/"化しているわけではありませんが、Githubリポジトリと呼ばれ DefinitelyTyped.

問題点もあり:の型定義に一致しなければならないの図書館をご利用の実行ます。ばらなければならないが、稿が不可だから呼び出す機能やdereferencing変数が存在するか、またはできる電話機能や逆参照変数が存在しなるものの、なかなかの種類が一致しない実行時にコンパイルします。いただくには、右の型定義のバックグラウンドプロセります。

正直、ある手本とも理由のひとつだけお選び稿で行った講座のことならショッピングが楽しめるタイプの定義です。一方で、どんなものか知っていれば確認することができますそれを克服のような問題による不正確又は不定義ファイルです。

に変換するwebブラウザでJavaScriptの実行を稿

他の .js ファイルに名称変更へ .ts ファイルを走り抜け稿コンパイラを構文上、同じJavaScriptコードとして出力された構文上の正しいの場となる場合でも、稿コンパイラが作成誤差続きを演出 .js ファイルです。でも受け入れ .js ファイルを入力としての --allowJs フラグ。ことができ始稿します。残念ながら、集計誤差が発生することがあります。なかで忘れてはならないことをなすものとならないが止まるようなエラーは使用されることがあります。るその他のコンパイラでコンパイル.

の誤差が最初に変換する時、JavaScriptのプロジェクトを稿プロジェクトがやむを得ない稿です。稿チェック すべての コードの妥当性とそのニーズを知るすべての機能は、変数を使用します。このように型を定義する必要のための全合成の誤差が生じる。この章では、上記いずJavaScriptの枠組みが .d.ts ファイルを出ることが義務付けられている取得の設置 DefinitelyTypedパッケージ.かしきることで、使用の一部を曖昧に図書館における稿定義があいまっpolyfilled一部にJavaScriptのプリミティブ.その場合、提供する必要があ型定義のためにこれらのビットのエラーがなくなります。ぐを .d.ts ファイル内のtsconfig.jsonの files 配列することで、常に稿コンパイラです。れている方は、申告するビット稿つながりとしてタイプ any.お客さま人数小児-幼児に解消すべての誤差まで徐々に紹介しタイピングへの部品をお客様のご仕様に合わせて.

一部の作業を(再)構造のパイプラインも必要に稿の構築をパイプラインこの章編集にあたっぷりの良い資源であり組んでいただきたいと思いま眺めるために種子事業の組み合わせのツールする働きます。

最大のハードルはプロジェクトチームのメンバー.り組んでいただきたいと思いのままに遊んでも小さなプロジェクトです。見受けられますかということではまったらしいので、ファイルで、どのように構成で、どのような機能のIDEでは、ツールを使います。変換した大きなJavaScriptコードベースに稿が可が分かっている場合は、何をしています。このブログのための例 変換600k線稿72時間).でいただくにはしっかり把握する言語をご利用いただきますようよろしにジャンプします。

採用

稿がオープンソース(Apache2のライセンス、見 GitHub)、Microsoft. Anders Hejlsberg, の建築家のC#で社会の実現を目指した。で非常に活発プロジェクトに稿のチームがたくさん発表の最後の数年間はたくさんの素晴らしいものはもっともに、 ロードマップ).

情報-採用-人気:

  • 2017年StackOverflowト調査 稿した最も人気のJavaScript transpiler(9位全体)や第三位のプログラミング言語です。
  • 2018年までの状態js調査 稿したとして宣言された一つの大きな賞をJavaScriptの味カテゴリー(ES6を生成するための開発ツールです。
  • 2019年StackOverlow deverloper調査 稿に上昇し、9位の一番人気の言語の中でプローを抜き、両方のCおよびC++.また第三の場所の中でも最も愛されます。

TypesScriptは、CSSのためのものやSASSのためのものと似たものをします。彼らはそれのスーパーセットです。つまり、あなたが書くすべてのJSコードは有効なタイプスクリプトコードであることを意味します。さらにあなたはそれが言語に追加される他のグッズを使うことができ、そしてトランパーコードは有効なJSになります。結果のコードが必要なJSバージョンを設定することもできます。

現在TQUISTSCRPRYはES2015のスーパーセットであるため、新しいJS機能の学習を開始し、プロジェクトに必要な標準に移植することをお勧めします。

" TriptionScript Fundamentalals " - href="https://www.pluralsight.com/authors/dan-wahlin"> Dan Wahlin John Papa は本当に良いです、現在(2016年3月25日)TypeScript 1.8、TypeScriptの紹介を反映するように更新されました。

IntelliSenseのための素敵な可能性のそばにある本当に良い機能は、クラスインターフェースモジュール、実装の容易さです。AMD、およびIEで呼び出されたときにVisual Studio TypeScriptデバッガを使用する可能性。

要約:意図したように使用されている場合、TypeScriptはJavaScriptプログラミングをより信頼性が高く、簡単にすることができます。それは、完全なSDLCを介してJavaScriptプログラマーの生産性を大幅に増やすことができます。

ECMAスクリプト5(ES5)は、すべてのブラウザをサポートしてプリコンパイルしたものです。ES6 / ES2015とES / 2016は今年、これらの変更をポップアップするために多くの変更を伴って来ました。

•TypesScriptはタイプ - >各プロパティとメソッドのデータ型を定義する必要があることを意味します。あなたがC#を知っていれば、Typescriptは理解しやすいです。

•Tysscriptの大きな利点は、生産に進む前に早くアイデンティティタイプの関連問題です。これにより、タイプの不一致がある場合、単体テストは失敗することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top