TypeScriptをコンパイルするとき、「型宣言ファイル」（拡張子.d.ts）を生成するオプションがある。この型宣言ファイルは、コンパイルされてできたJavaScript内のコンポーネントへのインタフェースの役割を果たす。コンパイラは、型宣言ファイルの作成過程で、関数やメソッドのコードの中身はすべて除去し、出力される型のシグネチャだけを残す。その結果として出来た型宣言ファイルには、出力されたJavaScriptライブラリまたはモジュールの仮想的なTypeScript型が記述してあり、第三者がTypeScriptを書くとき、この型宣言ファイルを読み込んで使うことが出来る。この型宣言ファイルの概念は、C言語やC++におけるヘッダファイルとよく似ている。declare module arithmetics {    add(left: number, right: number): number;    subtract(left: number, right: number): number;    multiply(left: number, right: number): number;    divide(left: number, right: number): number;}既存のJavaScriptライブラリのための型宣言ファイルは、手書きで書くこともでき、それは既にjQueryやNode.jsに対して行われた。jQuery、MongoDB、D3.js、Node.jsといった人気のあるJavaScriptライブラリに対する型宣言ファイルを多数集めたものが、GitHubのDefinitelyTypedや Typings Registryに公開されている。リポジトリから型宣言ファイルを検索しインストールするのを補助するためにtypingsというコマンドラインユーティリティが提供されている。
TypeScriptはコンパイル時における型検査を可能にするために、型アノーテーションによる静的型付けの仕組みを提供している。この仕組みの利用は任意なので、この仕組みを無視して普通のJavaScriptの動的型付けを使うこともできる。function add(left: number, right: number): number {return left + right;}プリミティブ型のためのアノーテーションはnumber、boolean、stringである。弱い型付けあるいは動的型付けにする場合は、any型を用いる。既にJavaScriptにコンパイルされた型を使うTypeScriptスクリプトから型情報を利用できるようにするために、型アノーテーションは別個の「宣言ファイル」に外出しすることが出来る。アノーテーションは、Node.jsやjQueryに対して行われたように、既存のJavaScriptライブラリに対しても宣言できる。型が与えられていない場合、TypeScriptコンパイラは型を推論するために型推論を使う。例えば、上のコードにおけるadd メソッドは、もし戻り値型が何も与えられていなかったとしても、number型を返すと推論される。これは引数leftとrightが number型であること、および「二つのnumber型を加算した結果は常にnumber型である」というコンパイラ側の知識に基づいている。しかし、明示的に戻り値型を指定しておけば、コンパイラがその正しさを検証してくれる。宣言の不足により型推論が不可能な場合、動的なany型がデフォルトで使われる。any型の値に対する操作は、JavaScriptと同様の操作をサポートしているので、any型に対する操作については最低限の静的型検査が行われるだけである。
TypeScript はECMAScript 2015の厳密なスーパーセットであり、ECMAScript 2015はECMAScript 5(一般的にJavaScriptと呼ばれているもの)のスーパーセットである。従って、JavaScriptプログラムは有効なTypeScriptプログラムでもあるので、TypeScriptプログラムはJavaScriptを境目なしに利用できる。デフォルト設定の場合、コンパイラはECMAScript 3を出力するが、オプションによりECMAScript 3から最新のECMAScriptまでの間で出力対象を選択することができる。TypeScriptでは、既存のJavaScriptコードを使うことができる。つまり、人気のあるJavaScriptライブラリを取り入れることができ、他のJavaScriptからTypeScriptで作られたコードを呼ぶこともできる。これらの外部ライブラリに対する型宣言は、DefinitelyTyped（後述）に収録されていればnpmを用いて簡単にインストールすることができる。
1936年7月18日、軍部の叛乱（後にフランコが主導）によりスペイン内戦が勃発する。バスクではアラバ県とパンプローナ県がフランコ軍の占領地域となった。この事態への対処をめぐってバスク民族主義党は混乱する。カトリック主義という点で、バスク民族主義党はフランコ軍と共通の価値観を持っており、また法王庁からは共和国政府に近づかないよう圧力を受けてもいたためである。しかし、共和国政府から与えられた自治の約束と反ファシズム思想によって、バスク民族主義党は共和国政府側につくこととなる。党でもっとも人数の多かったビスカヤ県とギプスコア県の支部は、スペイン内戦を通して共和国政府支持と反ファシズムを明確に打ち出し、共和国政府側の地域の要となった。一方、フランコ軍が占領した地域において、バスク民族主義党員は厳しい事態に直面することになった。党の県委員会のメンバーの中には、共和国政府を支持しないという通告を公的な決定抜きに出した者もあった。党員はフランスや政府側地域に逃亡したり、フランコ軍に抵抗して獄死、あるいは処刑されたりした。また、一部の党員は信条のために、あるいは攻撃を避けるためにカルリスタの隊列に身を投じた。弾圧は左翼に集中したとはいえ、バスク民族主義者もまた標的とされた。フランコ軍地域では7月には党の建物とは閉鎖され、機関紙は廃刊された。1936年10月7日、スペイン共和国の下では困難な状況の中でバスク自治政府が成立し、バスク民族主義党の党首ホセ・アントニオ・アギーレが初代バスク自治政府首班（レンダカリ）に選出された。ビスカヤ・ギプスコアとフランコ軍に占領されていない地域を統治した自治政府は、ただちにバスク軍を組織した。バスク軍には、バスク民族主義者党を含むさまざまな政治団体が募集した民兵が結集した。1937年6月、バスク地方で最も重要な都市であり、スペイン有数の工業都市でもあったビルバオはフランコ軍に占領された。共和国政府は撤退に際してビルバオの工業施設（製鉄・機械工業）の破壊を要請したが、アギーレらバスクの民族主義者たちはこれを拒否した。バスク人の将来の繁栄を確保する責任があると考えたためである。ビルバオを占領したフランコの叛乱軍はこれらの重要産業を利用することができた。1937年7月、バスク全域を失ったバスク軍はサンタンデール方面に撤退、共和国政府の支援もないまま、サントーニャ協約に従ってバスク軍はイタリア義勇軍に降伏した。ファシストたちは彼らの投獄や処刑を命じた。バスク民族主義者党の幹部の多くはバスク軍とともに行動しており、兵士たちと同じ運命を辿ることになった。