type ?
자료형. 변수를 선언할 때 앞에 붙여 사용합니다.
typescript?
개념:
자바스크립트를 기반으로 정적 타입 문법을 추가한 프로그래밍 언어
사용방법:
브라우저에서 실행하려면 파일 변환(compile) 필요
장점:
- 에러 사전 방지
- 코드 작성 시 개발 툴 기능 최대 활용 가능(변수에 대한 타입이 지정되어 있기 때문)
다양한 기본 타입
Boolean, Number, String, Object, Array, Tuple, Enum, Any, Void, Null, Undefined, Never
- Tuple: 순서, 길이 보장
- Enum: 열거형, Number 또는 String 값 집합에 고정된 이름을 부여(https://www.typescriptlang.org/ko/docs/handbook/enums.html)
- Void: 변수에 undefined와 null만 할당 가능
- Any: 모든 유형의 값 할당 가능
- Never: 일반적으로 함수의 리턴 타입으로 사용, 무조건 오류 출력 || 리턴 값 반환하지 않음
- Undefined와 Null의 차이점
변수가 초기화 없이 선언되면 Undefined
변수에 할당되었지만 값이 없는 Null
문법
지정된 타입으로 선언한 변수에 다른 타입을 할당할 수 없다.
let str:string = "Hi"; // str = 10; error let num:number = 100; let arr:number[] = [1, 2, 3]; let obj:{name:string, age:number} = {name:"Kaka", age:9};
함수의 파라미터
function add(a:number, b:number): number { return a + b; }
인터페이스
interface User { age: number; name: string; } // 확장 interface User extends Person{ language: string; }
타입 추론
// 선언 시 boolean으로 추론 let a = true; a = 100; // number 할당하면 Error
타입 단언
컴파일러가 가진 정보를 무시하고 원하는 임의의 타입을 값에 할당
선택적 속성
속성 이름 뒤 ? 추가