Type Script|デフォルトタイプ


  • タイプのスクリプトです.javascript(ex.変数or関数)コードでタイプ
  • を定義できます.
    呑タイプスクリプトの基本タイプ
  • Boolean
  • Number
  • String
  • Object
  • Array
  • Tuple
  • Enum
  • Any
  • Void
  • Null
  • Undefined
  • Never
  • 📌 String
    JS変数タイプが文字列の場合
    let car:string = 'bmw';
    
    // let으로 선언된 변수 수정
    car = 'benz';
    
    // string이 아닌 타입으로 재선언 시, 에러 발생
    car = 3; // Type 'number' is not assignable to type 'string'.
    📌 Number
    タイプ→数値の場合
    let num: number = 10;
    📌 Boolean
    タイプ→キャリー値
    let isLoggedIn: boolean = false;
    📌 Array
    タイプ→シナリオ
    let arr: number[] = [1,2,3];
    
    // 제네릭 사용 가능
    let arr: Array<number> = [1,2,3];
    
    // 문자열
    let week1:string[] = ["mon", "tue", "wen"];
    let week2:Array<string> = ["mon", "tue", "wen"];
    
    week1.push(3) // [에러 발생] 이유: 문자열 배열에 숫자 추가하려고 해서
    📌 Tuple
    要素のタイプと数の固定配列(異なるタイプのインデックスを使用)
    let b:[string, number];
    /* 
    - 의미:
    첫 번째 요소: string
    두 번째 요소: number
    */ 
    
    b=['z', 1]
    b=[1,'z'] // 불가
    
    // 타입에 맞는 메소드 사용 가능
    b[0].toLowerCase(); // 정상 동작. toLowerCase(문자를 소문자로 바꿈)
    b[1].toLowerCase(); // 에러 발생.
    
    // 정의하지 않은 타입 및 인덱스로 접근 시 -> 오류
    b[1].concat('!'); // Error, 'number' does not have 'concat'
    b[5] = 'hello' // Error, Property '5' does not exist on type '[string, number]'.
    📌 Enum
    特定値(定数)の集合

  • 使用する場合
    特定の値のみを強制的に入力する場合&これらの値に共通点がある場合

  • JSにないタイプ
  • 🔹 特長
    プレミアム

  • 0から1に自動的に追加して割り当てます
  • 手動で価格を出さない限り、
  •     enum Os{
          Window, // (enum member) Os.Window = 0
          Ios, // (enum member) Os.Ios = 1
          Android // (enum member) Os.Android = 2
        }

  • 文字列を入力することもできます

  • 一方向マッピングのみを許可
    理由:数字じゃないから

  • サンプルコード
  •         enum Os{
              Window = "win",
              Ios = "ios",
              Android = "and"
            }
            
            // 실제 컴파일 (단방향 맵핑된 모습)
            var Os;
            (function (Os) {
                Os["Window"] = "win";
                Os["Ios"] = "ios";
                Os["Android"] = "and";
            })(Os || (Os = {}));
            
            // 이런 모습으로 컴파일된다는 뜻
            const Os = {
              Window: "win",
              Ios: "ios",
              Android: "and"
            }
    双方向マップ
    enum Os{
      Window = 3,
      Ios = 10,
      Android
    }
    
    // 컴파일된 결과
    var Os;
    (function (Os) {
        Os[Os["Window"] = 3] = "Window";
        Os[Os["Ios"] = 10] = "Ios";
        Os[Os["Android"] = 11] = "Android";
    })(Os || (Os = {}));
    /*
    - Os라는 객체가 만들어졌고
    - Window는 3, Ios는 10, Android는 11이 들어와있음.
    - Os 3은 Window, 10은 Ios, 11은 Android가 할당됨.
    => '양방향 맵핑'이 되어있다.
    */
    
    // 확인(콘솔)
    console.log(Os[10]) // "Ios"
    console.log(Os['Ios']) // 10
    ◾内部値のみ入力可能
    enum Os{
      Window = "win",
      Ios = "ios",
      Android = "and"
    }
    
    // 'myOs의 타입은 Os이다.'라고 선언
    let myOs: Os; 
    
    // myOs에는 Os의 Window, Ios, Android만 입력 가능
    myOs = Os.Window
    console.log(myOs) // "win"
    📌 Any
    すべてのタイプを許可
  • Webサービスコード(JavaScriptで実装)でタイプスクリプトを逐次適用すると、
  • という良いタイプです.
    let str:any = 'hi';
    let num:any = 10;
    let arr:any = ["a",2,true];
    📌 Void
    変数:undefinedと  null万指定
    関数:戻り値xの設定
    let unuseful: void = undefined;
    
    function notuse() : void {
        console.log('sth');
    }
    📌 Never
    エラーまたは終了しない関数タイプを常に返します.
    // 항상 에러 반환
    function showError():never{
      throw new Error();
    }
    
    // 영원히 끝나지 않는 함수
    function infLoop():never {
      while(true){
        // do something...
      }
    }
    📌 null, undefined
    let a:null = null;
    let b:undefined = undefined;
    ✍ TIPS
    🔸 利用可能な方法→分かりやすい
    タイプは事前に知っていたので、typescriptグラウンドや使用するエディタでtsに関連する拡張子が設定されている場合、→.に撮影された場合(各タイプについて)利用可能なリストは少ない.
    🔸 類型推論
    // string을 선언하지 않아도 할당된 값으로 타입 설정됨.
    let car = 'bmw'; // let car: string
    🔸 タイプタグ:を使用してJavaScriptコードでタイプを定義します.
  • を参照してください.
    板橋隊長-タイプスクリプトマニュアル
    エンコーディングモードスクリプト