Develope Me!

[TypeScript] TypeScript의 기본 타입 본문

JavaScript/TypeScript

[TypeScript] TypeScript의 기본 타입

코잘알지망생 2023. 12. 12. 11:21

TypeScript

타입스크립트는 자바스크립트와는 달리 엄격하게 타입을 관리하는 언어다. 
변수를 선언할 때 명시적으로 타입을 설정할 수 있고 자바스크립트를 포함하는 슈퍼셋(Superset)이기 때문에 자바스크립트가 지원하는 데이터타입을 모두 사용할 수 있다. 뿐만 아니라 클래스, 인터페이스 등을 타입으로 설정하는 것도 가능하다. 

 

TypeScript 기본 타입

 

  • string(문자열) / number(숫자) / boolean(진위)

    √ 변수 타입을 선언할 때는 :를 사용하여 타입을 표기해준다.

 

// string
let coffee : string = "Americano";
console.log(coffee); // Americano

// number 
let age : number = 20;
console.log(age); // 20

// boolean
let isAdult : boolean = true;
console.log(isAdult); // true
  • array (배열)

    √ 타입이 배열인 경우에는 제네릭을 사용하여 선언할 수도 있다.

let grade : number[] = [1,2,3];
let country : Array<string> = ['korea','america','china'];

console.log(grade); // [1,2,3]
console.log(country); // ["korea", "america", "china"]
  • tuple (배열의 길이가 고정되고 각 요소의 타입이 지정되어 있는 배열 형식)

    √ 정의하지 않은 타입이나 인덱스로 접근할 경우에는 오류가 발생할 수 있다.

let student_info : [string, number, boolean] = ['James',15,false];
console.log(student_info); // ["James", 15, false] 

student_info[1].concat('@'); // Property 'concat' does not exist on type 'number'.
  • enum (상수들의 집합으로 비슷한 타입의 묶음)

    √ enum은 인덱스 번호로도 접근 가능하며 인덱스를 사용자의 편의에 맞춰 변경하여 사용 가능하다.

enum Os{
    window = 3,
    ios = 10,
    Android
}

let myOs1: Os = Os.ios;
let myOs2: Os = Os['ios'];
let myOs3: string = Os[10];

console.log(myOs1); // 10
console.log(myOs2); // 10
console.log(myOs3); // ios

 

  • any / unknown 

    √ any 타입은 모든 타입을 할당받을 수 있는 타입이다.

    √ 자바스크립트로 구현되어 있는 코드에 타입스크립트를 점진적으로 적용할 때 활용할 수 있다.

    √ 그러나 의도치 않은 형 변환이나 다른 타입의 값이 대입 될 수 있으므로 사용시 유의해야 한다.

let str1 : any = 'hello world';
let num1 : any = 20;
let arr1 : any = [1,2,3,'a','b','c',true,false];

 

    √ unknown  타입은 모든 타입을 할당받을 수 있다는 점에서 any와 동일하나 할당된 값의 타입을 모르기 때문에 함부로 프로 퍼티나 연산을 할 수가 없다.

let unknown_val : unknown = 100;
console.log(unknown_val.length); // 'unknown_val' is of type 'unknown'.

 

  • void (반환 값이 없는 함수의 반환 타입)

    √ return 이 없거나 있어도 반환하는 값이 없으면 void로 지정해준다.

function sayHello():void{
    console.log('hello');
}
 
  • never (함수의 끝에 절대 도달하지 않는 타입) 

    √ 에러 함수를 사용할 때나 무한 루프 함수에서 사용 가능하다

      (never 타입을 사용하는 케이스에 대한 추가적인 학습 필요해보임...)

let val : never;
val = 12; // Type 'number' is not assignable to type 'never'.
 
 

참고 사이트: https://yamoo9.gitbook.io/typescript/

 

TypeScript 가이드북 - TypeScript Guidebook

타입(Types)을 사용하면 JavaScript 애플리케이션을 개발할 때 정적 타입 검사 및 코드 리팩토링과 같은 생산성 높은 개발을 수행할 수 있습니다. 타입 설정이 필수는 아니지만, 설정할 경우 컴파일

yamoo9.gitbook.io

 

'JavaScript > TypeScript' 카테고리의 다른 글

[TypeScript] TypeScript 정의 및 특징  (1) 2023.12.11
Comments