Open2

TypeScriptを書くときの用語の意味を正しく把握する

keikei

パース(parse)

簡単に言うと、データをある形式から別の形式に変換すること。文字として書かれたデータをコンピューターがその意味を理解できるように専用のデータに変える作業のことを指す。

たとえば、Webから情報取得したとき、その情報は「string(文字列)」として返される。しかし、そのままでは数字として計算をしたり、特定の形に当てはめることができないため、数値やオブジェクトなどのデータに変換する必要がある。

この変換作業をパースという。

例1:文字列を数値へパース

const value = "42";
const numberValue = parseInt(value); // 文字列 "42" を数値 42 に変換

例2:JSONへのパース

Webから取得したデータは、JSONという文字列型の形式で返される。しかし、これをオブジェクトとして扱うためにはパースが必要になる。

const jsonString = '{"name": "Kei", "age": 29}';
const parsedData = JSON.parse(jsonString); // 文字列をオブジェクトに変換

上記の例は、文字列の形式であるデータをJSON.parseを使ってオブジェクトに変換している。この作業によって、parsedData.nameparsedData.ageとしてデータを利用できる。

keikei

コンパイル

人間が理解しやすいプログラミング言語を機会が直接実行可能な機械語(0と1)に変換すること。コンパイルはコードを実行する直前に行われる。

トランスパイル

あるプログラミング言語のコードを、同じレベルの別のプログラミング言語に変換すること。コンパイルと似ているが、違いは「同じレベルの言語間での変換」であること。

たとえば、TypeScriptをJavaScriptにトランスパイルする。そうすることで、ブラウザやNode.jsなどが実行可能な形にできる。JavaScriptとTypeScriptは同じレベルの言語であるため、この変換作業はトランスパイルと呼ばれる。

つまり?

人間が理解しやすい言語を「高級言語」、機械が理解しやすい言語を「低級言語」と定義するなら、JavaScriptもTypeScriptも、人間が理解可能な言語レベルと言える。
しかし、0や1で書かれたものでは到底理解できるものではないため、機械が理解できる低級言語と呼ばれる。

※高級・低級という言葉を使われるが、決してどちらかが優れている、高位なものという意味ではない。

データ変換という意味では同じだけど…

パース、コンパイル、トランスパイルは「あるデータを別のデータに変換するという意味」では同じものを指す。しかし、それぞれに適した作業場所と異なる目的を持った変換用語である。