タイプスクリプトは


タイプスクリプト
  • javascriptタイプ言語
  • JavaScriptとは異なり、ブラウザで実行するにはコンパイルが必要です.
  • ts簡易テスト(https://replit.com/languages/typescript)
  • どうして使いますか.
  • タイプエラー防止
  • タイプを定義すると、定義タイプとは異なるタイプを使用すると、コンパイルエラー
  • が発生します.
  • コードガイドと自動補完
    IDE(
  • Vscodeなど)では、定義されたタイプを表示し、そのタイプのAPIを自動的に完了するなどの機能(生産性の向上)
  • を実行できます.
    の基礎を置く
    タイプ宣言
    // 문자열
    const name: string = 'tester'; 
    
    // 진위값
    const isDone: boolean = false;
    
    // 숫자
    const age: number = 23; 
    
    // 배열
    const arr: Array<String> = [];
    arr.push('hi'); 
    arr.push(3); // tslint 에러 발생 - Argument of type 'number' is not assignable to parameter of type 
    
    // 배열 - 리터럴
    const items: string[] = []; 
    
    // 배열 - 리터럴 - 문자와 숫자를 동시에 가지는 배열
    const arrs: (string | number)[] = ['Apple', 1, 2];
    
    // 읽기 전용 배열
    const arrA: readonly number[] = [1, 2, 3, 4];
    
    // 튜플 (정해진 타입의 고정된 길이 배열, 이는 할당에 국한됨, push나 splice는 막을 수 없음)
    let tester: [string, number] = ['tester', 23];
    address.push(2); // 가능
    address = [2, 3]; // 첫번째 인자 에러 - Type 'number' is not assignable to type 'string'
    
    // 객체
    const obj: object = {};
    
    // 타입 객체 선언
    const person: { name: string, age: number } = { name: 'tester', age: 23};
    
    // interface
    interface user {
      name: string,
      age: number
    }
    let userA: user = { name: 'tester', age: 23};
    
    // 열거형 - 기본적으로 값이 0부터 시작하여 1씩 증가함. 값이 숫자일 경우 역방향 매핑 지원함
    enum Week {
      Sun, 
      Mon,
      Tue,
      Wed,
      Thu,
      Fri,
      Sat
    }
    console.log(Week.Mon); // 1
    console.log(Week[0]); // 역방향 매핑 지원
    console.log(Week); // {'0':'Sun', '1':'Mon' .. '6': 'Sat', Sun:0, Mon:1, ... Sat: 6}
    
    // 수동으로 값을 변경할 수 있고, 변경한 부분 부터 다시 1씩 증가함
    enum Week {
      Sun, // 0
      Mon, // 1
      Tue = 0, // 0
      Wed, // 1
      Thu, // 2
      Fri, // 3
      Sat // 4
    }
    console.log(Week); // {'0':'Tue', '1':'Wed' .. '4': 'Sat', Sun:0, Mon:1, Tue:0, Wed: 1, ... Sat: 4}
    console.log(Week[0]); // Tue
    
    // 열거형 - 문자 
    enum Color {
      Red = 'red',
      Green = 'green',
      Blue = 'blue'
    }
    console.log(Color.Red); // red
    
    // 모든타입
    const any: any = 123;
    const list: any[] = [1, true, 'test'];
    
    // 알 수 없는 타입 - Unknown에는 어떤 타입의 값도 할당할 수 있지만 Unknown을 any를 제외한 다른 타입에는 할당할 수 없음
    let a: any = 123;
    let u: unknown = 123;
    
    let v1: boolean = a; // 가능
    let v2: number = u; // 불가
    let v3: any = u; // 가능
    let v4: number = u as number; // 타입을 단언하면 할당 가능
    
    リファレンス
  • タイプスクリプトマニュアル
  • 一目瞭然のシナリオ