「TypeScript最速の入門書 [基礎編]」の感想・備忘録

スポンサーリンク

kindle本「TypeScript最速の入門書 [基礎編]」のまとめ。

点数

74点

感想

とても読みやすかった。
TypeScriptには様々な機能があるが、複雑になってしまうため基本的な使い方に留めた方がいいと感じた。

型宣言

let a: number = 100;
let b: boolean = true;
let c: string = 'hoge';
let d = 100; // 型なし初期値あり、の場合は型推論される
// d = 'aaa'; はエラーとなる
let e = null; // 初期値nullは型推論でany型となる
e = 100; // any型には全ての型を代入可能

配列

let nums:number[] = [100, 200];
let nums2:number[] = [...nums];   // 配列のコピーは...を使う
nums[0] = 101;
console.log(nums, nums2); // [ 101, 200 ] [ 100, 200 ]

列挙型

enum Color {
    Red,
    Green,
    Blue
};
console.log(Color.Blue); // 2
// 任意の値を代入することもできる
enum Color {
    Red = 1,
    Green = 3,
    Blue = 5
};

関数

function add(a: number, b:number): number {
    return a + b;
}
function logHoge(): void {
    console.log('hoge');
}

オーバーロード

// 関数シグネチャを定義すると、同一名の関数を複数定義することができる。
function isPositiveNumber(a: number): boolean;
function isPositiveNumber(a: boolean): boolean;

function isPositiveNumber(a: any): boolean {
  if (typeof a === 'number') {
    return a > 0;
  }
  return a;
}

// 引数をユニオン(合併型)にしても同じ。
function isPositiveNumber(a: number | boolean): boolean {
  if (typeof a === 'number') {
    return a > 0;
  }
  return a;
}
// typeで型エイリアスを定義してもオーバーロード可能である。
type isPositiveNumber2 = {
    (a: number): boolean;
    (a: number): boolean;
};

const isPositiveNumber2:isPositiveNumber2 = function (a: any): boolean {
    if (typeof a === 'number') {
        return a > 0;
    }
    return a;
}

クラス

class User {
  private name: string;
  constructor(name: string) {
    this.name = name;
  }
  public logName() {
    console.log(this.name);
  }
}
const taro = new User('Taro');
taro.logName();

コメント