タイプスクリプト

12521 ワード

JavaScriptはダイナミックタイプの言語です.変数に格納されているタイプ(実行時でも)は、いつでも変更できます.
->特定のタイプのコードに依存する必要がある場合は、実行中にエラーが発生しないように、現在のタイプのコードを確認する必要があります.
if (typeof n === 'number'){
 	//...
}
タイプスクリプトは静的タイプで、開発中に変数のタイプを定義します->実行時に突然変更することはありません->開発中にエラーが発生する可能性があります.
既存のJavaScriptのランタイム環境ノードまたはブラウザでタイプスクリプトを実行できません.



タイプスクリプトには、基本的にタイプ推定と呼ばれる組み込み機能があります.
->タイプスクリプトは、特定の変数または定数で使用されるタイプをよく理解します.
(明示的な表示タイプは不要)
let number1: number = 5; //좋지 않은 방식 -> 타입 추론에 의해 이미 타입이 정해짐
let number1 = 5; // 이렇게 가능
//또는
let number1: number;
number1 = 5;
タイプ推定を使用すると、タイプスクリプトでタイプを明示的に宣言した後に値を再入力するよりも簡潔で、より良いです.
//명시적으로 객체의 타입을 선언
const person: {
    name: string;
    age: number;
} = {
  name: "sehyun",
  age: 30,
};

console.log(person.name);
//타입 추론을 이용한 방식
const person = {
  name: "sehyun",
  age: 30,
};

console.log(person.name);

タイプスクリプトのどのタイプも頻繁に使用されません->柔軟なタイプですが、タイプスクリプトのメリットを十分に発揮することはできません.->相殺タイプスクリプトの利点->バニラJavaScriptと区別なし->anyタイプはtypescriptコンパイラによってチェックされません
タイプスクリプトはプログラミング言語であり、ツール(コンパイラ)でもあります.
コードを実行し、タイプスクリプトコードをJavaScriptのコンパイラにコンパイルします.
つまり,タイプスクリプトを用いて最終的に得られるのはJavaScriptである.
ブラウザの実行中にエラーが発生する前に、開発中にコード内のエラーを事前に認識することもできます.
実行時に(タイプエラー)を発見しますか?それとも開発中に発見されましたか?差異
タイプスクリプトは、実行時にコードを変更するものではありません.
タイプスクリプトは、開発に必要な有用なツールとプログラミング言語です.
タイプスクリプトを使用し、次のコードのようにコンパイル中にエラーが検出されましたが、エラーコードは含まれています.tsをコンパイルしても.jsファイル生成.
つまり、タイプスクリプトはコンパイルをブロックするのではなく、エラーやエラーを伝えて指摘します.
function add(n1: number, n2): number { 
    return n1 + n2;
}

const number1 = '5';
const number2 = 2.8;

const result = add(number1, number2);
console.log(result);
npm install lite-server --save-dev
"start": "lite-server"
tsc xxx.ts -> xxx.jsファイルを作成した後
(ブラウザを再オープンしなくても変更は有効)
タイプスクリプト推定タイプ.
手動でタイプを指定しなくても、初期割当値のタイプに基づいてタイプが推定されます.
let number1 = 5;
let number1 = '5'; // 에러: 초기에 number 타입의 5가 저장되어, 타입스크립트는 타입을 추론해서 number 타입만 할당 되도록 한다.

let number1;  
number1 = '5' //에러가 발생하지 않는다. 타입스크립트에 이 변수에 저장될 타입을 알려주지 않았으므로

let number1: number;
number = '5' // 에러 발생
すなわち,タイプスクリプトが推定されたタイプであっても,推定されたタイプ以外に他のタイプを指定するとエラーが発生する.
手動でタイプを指定しない場合は、初期値(初期タイプの値に対応)を保存する必要があります.
let number1: number // 명시된 타입
let number1 = 5 //추론된 타입 : number


let result = 'Result is : ';
result = 0; //에러
  • タイプのスクリプトにはtupleと呼ばれるタイプがあります.(要素数、長さ固定、各タイプの事前定義)
  • const person: {
      name: string;
      age: number;
      hobbies: string[];
      role: [number, string];
    } = {
      name: "sehyun",
      age: 30,
      hobbies: ["Sports", "Cooking"],
      role: [2, "author"],
    };
    tupleタイプは長さが固定されていると言いますが、pushは例外的に許可されています.
    また,既存型の推論を利用すれば,既存の配列型と考えられる.
    そのため、調整タイプを明確に宣言しなければならない.(キャラクターと趣味の違い)
    タイプを調整する必要がある場合は、明確に宣言します.1つの属性でも、明確に宣言されている場合は、他の属性も明確にタイプを決定します.
    タグ
  • 数字=enumタイプ
  • enum EXAM { ADMIN, AUTHOR, READ_ONLY } // ADMIN = 0, AUTHOR = 1, READ_ONLY = 2
    //enum EXAM { ADMIN=1, AUTHOR, READ_ONLY } //초기 값을 설정하면, ADMIN = 1, AUTHOR = 2, READ_ONLY = 3
    //enum EXAM { ADMIN=1, AUTHOR=100, READ_ONLY=200 } //각각의 고유 값을 지정할 수 있음
    
    const person = {
        name: "sehyun",
        age: 30,
        hobbies: ["Sports", "Cooking"],
        role:Role.ADMIN,
      };
    
    if(person.role === Role.AUTHOR){
        console.log('is author')
    }