study/TypeScript
TypeScript 000 소개
salalsksjwnn
2023. 4. 20. 08:54
728x90
타입 스크립트란?
- 안전하고 예측가능한 코드 구현에 초점을 맞춘 js의 상위집단 언어
- 기존 js에 type 시스템을 적용
- typeScript컴파일러를 통해 js로 변환되고 실행됨
- decorator와 같은 다양한 기능을 제공
💡 TypeScript = JavaScript + Type System
loosely typed 언어는 자유도는 있지만 안정성이 떨어진다. js는 type에 대해 느슨하기 때문에 ts가 만들어진 것
js에서 n이라는 변수를 만들 때 let, const, var 등을 사용할 수 있는데 n값에 대한 type은 명시하고 있지 않다. = 어떤 타입이든 변수 n에 들어갈 수 있다.
function add(n1, n2){
return n1+n2;
}
반대로 C나 JAVA같은 언어는 타입을 지정해 주어야 하는데(strongly typed or state typed) ts는 이런 타입 시스템을 적용할 수 있도록 해 놓은 언어
function add(n1:number, n2:number):number{
return n1+n2;
}
타입 시스템
- js의 타입
- 원시타입(Primitive Type)
- number bnoolean undefined string symbol null (void)
- 객체 타입
- functions arrays classes
- 원시타입(Primitive Type)
js는 인터프리터를 이용한 라인 단위의 번역을 실행하기 때문에 가능 Dynamic typed이다
ts는 이런 js를 정적으로 만들어준다.
- ts의 타입
- 정적 타입을 지원 - 변수, 파라미터, 함수의 값에 타입을 지정할 수 있다.
- 지정된 데이터 타입만 사용할 수 있다.
- 만약 다른 값을 대입하거나 전달인자로 전달한다면 compile 시점에 에러를 낸다.
- 변수와 파라미터에는 변수명 이후에 타입을 지정해준다
- 함수의 반환값에 대해서는 함수의 시그니처 마지막에 정의를 하게 된다.
let year : number = 2020; ///// function sumNumbers(firstNumber : number, secondNumber: number) : number { return firstNumber + secondNumber; }
타입 추론
- 정적으로 타입을 명시하지 않고 대입하는 값을 통해 타입을 유추해 결정하는 것
- 기본적으로 변수의 선언과 함께 값을 대입하는 경우 해당 변수는 타입추론으로 인해 대입되는 값의 타입을 갖는다.
- 변수를 선언하고 같은 코드 라인에서 특정 값을 대입하면 ts는 대입값의 타입을 유추해 변수의 타입을 확정한다.
- 변수의 선언과 값을 대입을 다른 코드라인에서 진행하면 해당 변수는 any타입의 변수가 된다.
let name = 'Min';
//let name : string
let age = 20;
//let age : number
//타입추론 - js처럼 어떤 타입을 넣을 수 있다. 타입 검사를 수행하지 않음
let name;
//let name : any
name = 'Min';
let age;
//let age : any
age = 20;
출처 : 나무소리 타입스크립트(https://youtu.be/0UMmCbcZid0)
728x90