JS에서의 문자열 선언은 보통 var형으로 선언 했습니다.
//JS 문자열 선언
var str = 'hello';
하지만 TS에서는 var형 보다는 let
const
를 통해 문자열 선언을 합니다.
(지향하는 방향입니다..! let
,const
를 애용하도록)
const str: string = 'hello';
let num: number = 10;
let
과 const
의 차이점에 대해 익히는것이 중요합니다.
const
: 선언된 string타입의 str
변수는 hello이외의 값을 받아들일 수 없습니다.let
: 선언된 num
변수는 같은 파일 내에서 num
변수를 또 사용하게 되면 메모리가 이미 할당되어 있기 때문에 선언이 불가합니다.TS에서는 배열의 선언을 다음과 같이 선언합니다.
//TS 배열
let arr: Array<number> = [1,2,3];
let sarr: Array<string> = ["hello","world"]; //string만 선언
let items: number[] = [1,2,3]
: Array<type>
식으로 선언하며 만약 type에 맞지 않는 요소가 배열에 선언 시, error를 뱉어냅니다.
만약 Array
를 쓰기 번거롭다면 :type[]
형태로 선언할 수 있습니다.
(type으로 지정된 값만 배열에 선언할 수 있다는 것을 의미)
튜플은 각 index에 value를 지정할 수 있습니다.
//TS 튜플 (각 index에 type을 지정)
let address: [string,number] = ['nike',1];
//TS 객체
let obj: object = {};
let person: object = {
name: 'dm',
age: 24
};
객체의 type 선언은 :object
입니다.
이때 객체의 선언을 아래와 같이 typescript답게 작성할 수 있고, 아래와 같은 방법을 더 추천합니다.
//객체를 구체적으로 선언하는 방법
let person: {name: string, age: number} = {
name : 'dm',
age : 24
};
name
과 age
를 어떤 type으로 받을 것 인지 선언하여 객체를 구체화하여 선언할 수 있습니다.
//TS 진위값
let show: boolean = true;
type 선언은 :boolean
입니다.
TS에서는 함수를 선언 시에도, Parameter에 type
을 지정할 수 있습니다.
또한 JS보다 더 엄격하게 return
도 type을 지정하여 선언할 수 있습니다.
//함수의 파라미터 타입(반환값에도)을 정의하는 방식
function sum(a: number,b: number): number {
return a + b;
}
그래서 JS에서는 기존 함수에서는 2개를 선언하였지만, sum(10,20,30) 으로 선언했어도 10,20만 알아서 인식을 했습니다.
하지만 TS에서는 매개변수 3개를 선언 시, 30에 빨간줄이 그어지면서 에러를 뱉어냅니다.
//함수의 Optional Parameter
function log(a: string, b?: string) {
//매개변수 2개 중에 일부만 사용하고 싶을때 syntax '?:' 활용
}
log('hello world');
log('hello ts','welcome');
TS에서는 매개변수를 Optional하게 선언할 수 있습니다.
?:
syntax를 활용하여 매개변수를 선택하여 함수를 선언할 수 있습니다. 그래서 ?:
으로 type이 지정된 parameter는 자유자재로 필요 유무에 따라 선택적으로 쓸 수 있는 매개변수입니다.