본문 바로가기

Typescript/타입 정의

Typescript - 변수

타입스크립트의 변수 선언은 자바스크립트와 동일합니다. 

 

변수 선언할 때 종류는 var, let, const 를 사용합니다. 

 

차이는 변수를 선언하고 바로 뒤에 타입을 적어주는 것 입니다. 

 

// var temp1: 타입 = '값'
// let temp2: 타입 = '값'
// const temp3: 타입 = '값'

 

let, const의 경우 블록 스코프 안에서만 사용할 수 있는 반면 var의 경우는 블록 스코프 밖에서도 사용할 수 있습니다. 

또한 const 의 경우 상수를 선언할 때 주로 사용하므로 값을 변경하면 error가 발생합니다.

function funTest(){

  let temp1: string = 'letTest1'
  
  if(temp1 typeof 'string'){
    let temp2: string = 'letTest2'
    const temp3: string = 'constTest'
    var temp4: string = 'varTest'
    
    temp3 = 'constTest1' // error
    
    console.log(temp1) // result => 'letTest1'
    console.log(temp2) // result => 'letTest2'
    console.log(temp3) // result => 'constTest'
    console.log(temp4) // result => 'varTest'
  }
  
    console.log(temp1) // result => 'letTest1'
    console.log(temp2) // error
    console.log(temp3) // error
    console.log(temp4) // result => 'varTest'
}

 

타입스크립트에서 변수를 사용하는 여러 경우의 예시

let temp: number = 32
temp = '32' // error

// 선언한 변수에 여러 타입이 들어가야된다면 OR표시('|')를 통해 아래와 같이 수정합니다.
let temp: number | string = 32
temp = '32'

/* Any */
// 만약 어떤 타입이 들어올지 모르는 상황에서는 모든 타입을 수용하는 any를 선언합니다. 
// 하지만 코드 작성시 any타입은 되도록 쓰지 않는걸 권장합니다. Typescript 의 장점을 활용할 수 없기 때문입니다.
let temp: any
temp = 32
temp = '32'
temp = false
temp = {}
temp = []


/* 배열 */
const array1 = ['a', 1]
const array2: (string|number)[] = ['a', 1] // Union 타입
const array3: [string,number] = ['a', 1] // 튜플
const array4: Array<string> = ['a','b'] // 제네릭을 이용한 선언도 가능합니다


/* 객체 */
let object1 = {name : '개발자', age : 32}
let object2: {name:string, age:number} = {name : '개발자', age : 32}

// 만약 age값을 알 수 없을 때 '?' 를 사용해 Optional 속성으로 지정할 수도 있습니다.
// 타입스크립트에서는 Optional로 설정 되어있지 않다면 반드시 선언을 해줘야되는 제한이 있습니다.
// Optional로 선언한 경우 값이 없더라도 error가 일어나지 않습니다.
let object3: {name:string, age?:number} = {name : '개발자'}

 

'Typescript > 타입 정의' 카테고리의 다른 글

Typescript - 함수  (0) 2023.06.25
Typescript - 타입 정의  (0) 2023.06.25