타입스크립트 - 타입 선언

dobyming·2022년 12월 21일
0

Typescript Study

목록 보기
4/17

1. 기본타입- 문자열, 숫자, 배열


-문자열 & 숫자

JS에서의 문자열 선언은 보통 var형으로 선언 했습니다.

//JS 문자열 선언
var str = 'hello';

하지만 TS에서는 var형 보다는 let const 를 통해 문자열 선언을 합니다.
(지향하는 방향입니다..! let ,const 를 애용하도록)

const str: string = 'hello';
let num: number = 10;

letconst의 차이점에 대해 익히는것이 중요합니다.

  • 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으로 지정된 값만 배열에 선언할 수 있다는 것을 의미)

2. 기본타입 - 튜플, 객체, 진위값


-튜플

튜플은 각 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
};

nameage 를 어떤 type으로 받을 것 인지 선언하여 객체를 구체화하여 선언할 수 있습니다.

-진위값

//TS 진위값
let show: boolean = true;

type 선언은 :boolean 입니다.

3. 함수 - 선언 및 파라미터 지정


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

//함수의 Optional Parameter
function log(a: string, b?: string) {
    //매개변수 2개 중에 일부만 사용하고 싶을때 syntax '?:' 활용
}
log('hello world');
log('hello ts','welcome');

TS에서는 매개변수를 Optional하게 선언할 수 있습니다.

?: syntax를 활용하여 매개변수를 선택하여 함수를 선언할 수 있습니다. 그래서 ?: 으로 type이 지정된 parameter는 자유자재로 필요 유무에 따라 선택적으로 쓸 수 있는 매개변수입니다.

0개의 댓글