function add(num1, num2){ console.log(num1 + num2) } add(); add(1); add(1,2); add(3,4,5); add('hello', 'world');
Javascript(동적언어) : 런타임에 타입 결정 / 오류 발견
Java/Typescript(정적언어) : 컴파일 타임에 타입 결정 / 오류 발견
Typescript 테스트 해보기 : https://www.typescriptlang.org/play
타입스크립트에서는 위와 같이 개발자의 실수들을 명시해준다.
변수의 타입을 명시하려면 변수:타입명 으로 작성하면 된다.
function add(num1:number, num2:number) { console.log(num1 + num2); }
npm install -g typescript
npm install --save typescript @types/node @types/react @types/react-dom @types/jest
npx create-react-app my-app --template typescript
tsc (파일명) -w
let age:number = 30;
let isAdult:boolean = true;
let name:string = 'kim';
let a:number[] = [1,2,3];
let a2:Array<number> = [1,2,3];
let week1:string[] = ['mon', 'tue', 'wed'];
let week2:Array<string> = ['mon', 'tue', 'wed'];
let nameObj:{name:string} = {name:'kim'};
let nameObj:{name?:string} = {name:'kim'}; //name속성이 들어오는 것이 불확실 하다면..
let b:[string, number]; //b[0]은 string b[1]은 number 자료형이 된다.
b = ['z', 1];
b[0].toLowerCase();
b[1].toLowerCase(); //error
let test:string|number = 'kim';
가능한 타입이 많다면 따로 빼서 선언할 수도 있다.(보통 대문자로 시작)
type MyType = string|number;
let name:MyType = 'kim';
function 함수명(x:파라미터 타입) : 리턴 값 타입 {
return x + 3;
}
function Hello(x:number) : number {
return x + 3;
}