タイプスクリプト
31582 ワード
TypeScriptとは?
タイプスクリプトはMSが開発したオープンソースで、JavaScriptの親セット(Superset)である静的タイプ言語です.
ダイナミックタイプ言語JavaScriptに強力なタイプシステムを適用し、コンパイル環境でほとんどのエラーを確認できます.
TSは、JSのすべての環境、プラットフォームを実行し、最新のECMAScript機能をサポートします.
オブジェクト向けのプログラミング環境も提供され、class、interface、extends、jenricなどを直接使用することができます.
タイプスクリプトの利点
タイプスクリプトの使用
1. npm i typescript
2. tsconfig.json設定
{
"compilerOptions": { // 실제 컴파일 할 경우 적용되는 옵션들
"module": "commonjs", //어떤 모듈 방식으로 컴파일할지 설정
"target": "ES2015", // 어떤 버전으로 컴파일할지 작성
"sourceMap": true, // 해당하는 .map 파일을 생성
"outDir": "dist" // 컴파일한 것들을 dist에 저장
},
"include": ["src/**/*"], // 컴파일할 경로 설정
"exclude": ["node_modules"] // 컴파일 대상을 제외하는 옵션
}
3.コンパイルタイプスクリプトは.ts拡張子を使用してファイル、indexを作成できます.tsファイルを作成し、端末にindexとしてtscを入力します.jsとindex.map生成.
(tsc-watchコマンドを使用して、変換ファイルの内容が変更されたことを検出すると、自動的に変換が実行されます.)
node.jsはtypescriptと理解できないため,通常のjavascriptコードを用いてコンパイルする必要がある.
タイプ(Type)
// Javascript
const name = "kevin",
age = 24,
gender = "male";
const sayHi = (name, age, gender?) => { // gender 뒤에 ?는 필수가 아닌 선택적으로 값을 받는다는 의미
console.log(`Hello ${name}, you are ${age}, you are a ${gender}`);
};
sayHi(name, age, gender);
// TypeScript
const sayHi = (name: string, age: number, gender?: string): string => {
return `Hello ${name}, you are ${age}, you are a ${gender}`;
};
console.log(sayHi("kevin", 24, "male"));
export {};
タイプ宣言1.泡立てた:Boolean
let isDone: boolean = false;
2.数字:numberlet num: number;
let num: number = 24;
let float: number = 3.14;
3.文字列:stringlet str: string;
let name: string = "kevin"
let myName: string = `my name is ${name}`
4.配列:arraylet color: string[] = ["red", "white", "black"];
// or
let color: Array<string> = ["red", "white", "black"];
let array: (string | number)[] = ["red", 1, 42, "black"];
// or
let array: Array<string | number> = ["red", 1, 42, "black"];
// 항목의 값을 단언할 수 없다
let arr: any[] = [0, 4, {}, [], 'str', false];
5.凡例:Tuple=>固定長(長さ)の固定タイプ配列// Tuple
let user: [number, string, boolean] = [1234, 'Hello', true];
console.log(user[0]); // 1234
console.log(user[1]); // 'HEROPY'
console.log(user[2]); // true
// readonly 키워드를 사용해 읽기 전용 튜플을 생성
let a: readonly [string, number] = ['Hi', 123];
6.列挙:Enum// 기본적으로 0부터 시작하며 값은 1씩 증가
enum Week {
Sun, //0
Mon, //1
Tue, //2
Wed, //3
Thu, //4
Fri, //5
Sat //6
}
// 수동으로 값을 변경할 수 있으며, 값을 변경한 부분부터 다시 1씩 증가
enum Week {
Sun, //0
Mon = 22, //22
Tue, //23
Wed, //24
Thu, //25
Fri, //26
Sat //27
}
7.すべてのタイプ:any// 자주쓰지 않는걸 추천
const any: any[] = [1, "hi", true]
8.不明なタイプ:未定義let a: any = 123;
let u: unknown = 123;
let v1: boolean = a; // 모든 타입(any)은 어디든 할당할 수 있습니다.
let v2: number = u; // 알 수 없는 타입(unknown)은 모든 타입(any)을 제외한 다른 타입에 할당할 수 없습니다.
let v3: any = u; // OK!
let v4: number = u as number; // 타입을 단언하면 할당할 수 있습니다.
9.オブジェクト:objectlet obj: object = {};
let arr: object = [];
let func: object = function () {};
let userA: { name: string, age: number } = {
name: 'kevin',
age: 123
};
let userB: { name: string, age: number } = {
name: 'kevin',
age: false, // Error
email: '[email protected]' // Error
};
interface
インタフェースをコンパイルせずに、
interface Human {
name: string;
age: number;
gender: string;
}
const person = {
name: "kevin",
age: 24,
gender: "male"
};
const sayHi = (person: Human): string => {
return `Hello ${person.name}, you are ${person.age}, you are a ${
person.gender
}!`;
};
console.log(sayHi(person));
export {};
classes
class Human {
public name: string;
private age: number;
public gender: string;
constructor(name: string, age: number, gender: string) {
this.name = name;
this.age = age;
this.gender = gender;
}
}
const lynn = new Human("Lynn", 18, "female");
const sayHi = (lynn: Human): string => {
return `Hello ${lynn.name}, you are ${lynn}, you are a ${
lynn.gender
}!`;
};
console.log(sayHi(lynn));
export {};
Reference
この問題について(タイプスクリプト), 我々は、より多くの情報をここで見つけました https://velog.io/@ehdgusdl9177/타입스크립트Typescriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol