TypeScriptとC#の違い
C#を学んだ人が見るとわかりやすい比較
今回は、C#を学んでいる人向けに、TypeScriptとC#は何が似ていて、何が違うのかをやさしく整理します。
「別の言語」と聞くと難しそうに感じますが、C#を学んでいる人なら、すでに共通する考え方をたくさん知っています。
■ まず結論
TypeScriptとC#は、書き方がかなり似ています。
でも、使う場所が違います。
■ 何に使う言語なのか
| 言語 | 主に使う場所 |
|---|---|
| C# | Windowsアプリ、Unity、業務システムなど |
| TypeScript | Webアプリ、ブラウザで動く画面など |
C#は、アプリやゲーム開発でよく使われます。
TypeScriptは、Webの画面側の開発でよく使われます。
つまり、
- C# → アプリやゲームで使うことが多い
- TypeScript → Webで使うことが多い
という違いがあります。
■ 変数はかなり似ている
まずは一番わかりやすいところです。
C#
int age = 20;
string name = "Taro";
TypeScript
let age: number = 20;
let name: string = "Taro";
見比べると、かなり似ています。
違いは主にここです。
- C#は、型を前に書く
- TypeScriptは、型を後ろに書く
■ if文も似ている
条件によって処理を変える書き方もよく似ています。
C#
int age = 20;
if (age >= 18)
{
Console.WriteLine("成人です");
}
else
{
Console.WriteLine("未成年です");
}
TypeScript
let age: number = 20;
if (age >= 18) {
console.log("成人です");
} else {
console.log("未成年です");
}
ここで注目したいのは、if の考え方そのものは同じということです。
- 条件を書く
- 条件が正しければ上
- そうでなければ下
この流れはC#でもTypeScriptでも同じです。
違いは主に出力方法です。
- C# → Console.WriteLine
- TypeScript → console.log
■ for文もかなり似ている
繰り返し処理も同じように書けます。
C#
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i);
}
TypeScript
for (let i: number = 0; i < 5; i++) {
console.log(i);
}
これを見ると、for文の構造はほとんど同じです。
- 最初の値を決める
- 条件を書く
- 1回ごとに増やす
この考え方はそのまま使えます。
■ 配列も似ている
C#
string[] fruits = { "りんご", "みかん", "ぶどう" };
for (int i = 0; i < fruits.Length; i++)
{
Console.WriteLine(fruits[i]);
}
TypeScript
let fruits: string[] = ["りんご", "みかん", "ぶどう"];
for (let i: number = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
ここもかなり似ています。
ただし、1つ注意点があります。
- C# → Length
- TypeScript → length
つまり、大文字小文字が違うので注意が必要です。
■ クラスも似ている
オブジェクト指向の学習をしている人にとっては、ここも安心できるポイントです。
C#
class Player
{
public int hp = 100;
public void Attack()
{
Console.WriteLine("攻撃した");
}
}
TypeScript
class Player {
hp: number = 100;
attack(): void {
console.log("攻撃した");
}
}
ここでも、
- データを持つ
- メソッドを持つ
- クラスから使う
という考え方は共通しています。
■ 一番大きな違いは「動く場所」
ここがいちばん大切です。
C#
C#は、コンパイルして実行します。
アプリやUnityの中で動きます。
TypeScript
TypeScriptは、そのままでは動きません。
JavaScriptに変換されてから動きます。
そして主にブラウザで使われます。
つまり、
TypeScriptは「Webで使うための、型付きJavaScript」
と考えるとわかりやすいです。
■ もう1つの違い:型のゆるさ
C#は型がかなりしっかりしています。
C#
int x = 10;
// x = "hello"; // エラー
TypeScriptも型がありますが、C#より少し柔軟です。
TypeScript
let x: number = 10;
// x = "hello"; // エラー
ここまでは同じですが、TypeScriptにはJavaScript由来の柔らかさもあります。
そのため、
C#のほうが「型が厳格」
TypeScriptのほうが「少し柔軟」
という違いがあります。
■ C#を学んだ人が有利な理由
ここは大事です。
C#を学んだ人は、すでに次の考え方を知っています。
- 変数
- 型
- if文
- for文
- 配列
- クラス
- メソッド
つまり、TypeScriptを見たときに
まったくゼロから始まるわけではないのです。
これは大きな強みです。
■ 生徒のみなさんに伝えたいこと
TypeScriptを見ると、最初は
- 書き方が少し違う
- 見慣れない記号がある
- なんとなく別物に見える
と感じるかもしれません。
でも本当に大事なのは、記号ではなく考え方です。
たとえば、
- 条件で分ける → if
- 繰り返す → for
- 複数のデータを持つ → 配列
- まとまりとして扱う → クラス
こうした考え方は、言語が変わっても活きます。
■ まとめ
TypeScriptとC#を比べると、次のように言えます。
- 変数の考え方は似ている
- if文やfor文もかなり似ている
- 配列やクラスの考え方も共通している
- ただし、使う場所が違う
- C#はアプリやUnityで使われやすい
- TypeScriptはWebで使われやすい
つまり、
書き方は似ているが、活躍する場所が違う
ということです。
■ 最後に
今C#を学んでいる人は、
「C#しかできない」のではありません。
実は、
他の言語を理解するための土台を作っている
とも言えます。
今やっている if文、for文、配列、クラスの学習は、
別の言語に進んだときにも、ちゃんと役に立ちます。
焦らず、まずは
- C#で考え方を身につける
- 似ている部分を見つける
- 違う部分は少しずつ覚える
この流れで十分です。




ディスカッション
コメント一覧
まだ、コメントがありません