타입스크립트는 자바스크립트의 확장된 언어로 타입을 부여한 언어이다.
[string]
let myName: string = "kimdaeho";
[number]
let myAge: number = 27;
[boolan]
let marry: boolean = false;
[null]
let money: null = null;
[undefined]
let future: undefined = undefined;
[array]
let users: string[] = ["daeho", "jihoon"];
- 배열 안 요소들의 타입 지정할 수 있음
[object]let classMate: { name: string; age: number } = { name: "kimdaeho", age: 29, };
- 객체의 value의 타입을 지정할 수 있음
사용할 type을 미리 지정할 수 있다.
type NameType = string; let man: daehoType = "김대호";
타입을 정의 안 해도 사용할 수 있다.
let newMember = "kimdaeho"; //string
2개 이상의 타입을 지정할 수 있다.
let age: number | string | boolean = 27; age = "27"; let daeho: (string | number)[] = ["김대호", 27]; //소괄호 안 해주면 number | [string] 이라는 의미 let user: { name: string | number } = { name: "김대호" };
any를 통한 타입쉴드 제거(타입스크립트 쓰는 의미x), 에러발생 x
let ageType : any; ageType = "27"; ageType = 27; ageType = [];
unknown - any와 비슷하지만 타입쉴드가 발동해서 에러를 확인할 수 있음
let weight : unknown; weight : "65"; weight : 65;
타입스크립트에서 일반적인 함수의 사용
function addNumber(x: number ): number { return x + 1; } // 괄호 안의 첫번째 type이 파라미터, 괄호 밖의 두번쨰 타입은 리턴값의 type
만약,파라미터가 없거나 return 하는 값이 없다면?
function addParameter(x?: number) { x + 1; } // 타입스크립트는 파라미터 꼭 넣어야하는데, 파라미터가 안 들어올 떄 ?를 통해 옵션처리 // (type | undefined 라는 의미임)\ function emptyReturn(x: number): void { x + 1; } //void를 통해 return 을 막아주는, 비어있다는 의미
Narrowing
function myNarrowing(x: number | string) { if (typeof x === "string") { return x + "1"; } else { return x + 1; } } // 타입이 애매할 때 typeof를 통해 조건에 따른 결과값 호출하는 방식
Assertion
function myAssertion(x: number | string) { let arr: number[] = []; arr[0] = x as number; } // 왼쪽에 있는 변수를 as를 통해 타입을 덮는 느낌
타입스크립트 파일(.ts)파일은 즉시 사용이 불가능하다. 그래서 특정 명령을 통해 컴파일 과정을 걸치고 js파일로 변환을 시켜줘야한다. 그리고 해당 파일을 html에 적용하여 사용할 수 있다.
npx tsc 타입스크립트 파일.ts
해당 명령어를 터미널에 작성하면 같은 이름의 js파일이 생기는데 html 의 body 태그에 적용 시켜주면 작성한 코드를 활용하여 동적으로 페이지를 조작할 수 있다.