[TypeScript] 타입 선언/ 별칭/ 옵션

2024. 11. 28. 22:25·TypeScript

타입 선언


1. 타입 추론

변수만 생성 초기값 할당 시 TS가 타입 추론

let a = "hi" //string 추론

a = 1 //에러

2. 타입 명시

let a : boolean = 'x' //에러

let c : number[] = [1,2,3]

간단할 경우 추론!

 

타입 별칭


특정 타입이나 인터페이스를 참조할 수 있는 타입 변수

//string 타입 사용
const name: string = '김야옹';

//타입별칭 사용
type Man = string;
const name:Man = '김야옹';

 

type Words = {
	[key: string]: string;  //property이름모르지만 타입만 알때
};

type Health = 1 | 5 | 10; //특정값 제한도 가능

 

함수에서는?

type User = {
    name: string,
    age?:number
}
                 //매개변수 타입 //리턴타입 명시(객체 자체 리턴)
function userMaker(name:string) : User{
    return { name } //=name: name /key, value가 동일경우 ts 자동축약
}

const a = userMaker("김야옹")
console.log(a); // { name: "김야옹" }
a.age = 12

*화살표 함수

const userMaker = (name: string): User => ({name})

- {}중갈호 같이 적는다면 return 필수

- 한줄로 작성시 {return} 생략가능

- 객체 리터럴을 반환할 때는 중괄호가 코드 블록으로 인식되지 않도록 소괄호() 필요

 

?옵션


객체 속성, 함수 매개변수 등 선택적 사용일 경우 사용

type User = {
    name: string,
    age?: number  //age : number | undefined
}

const a:User = { name: "가나다", age: 12}
const b:User = { name: "마바사"} //age 없어도 됨
if(a.age <20){ //에러 a.age가 undefined일 가능성 알림
}

if(a.age && a.age <20){ //ok
}

 

 

readonly


최초 선언 후 수정 불가

type User = {
    readonly name: string,  //수정시 알려줌
    age?:number
}

const userMaker = (name: string): User => ({name})

const a = userMaker("김야옹")
nico.name = "김멍멍" //오류
const numbers: readonly number[] = [1, 2, 3, 4]

numbers.push(1) //에러

 

'TypeScript' 카테고리의 다른 글

[TypeScript] Class / Interface  (0) 2024.11.30
[TypeScript] Call Signatures / Over Loading / Generics  (0) 2024.11.30
[TypeScript] 기본타입  (0) 2024.11.29
[TypeScript] 설치 및 환경 구축  (0) 2024.11.27
[TypeScript] 개요  (0) 2024.11.26
'TypeScript' 카테고리의 다른 글
  • [TypeScript] Call Signatures / Over Loading / Generics
  • [TypeScript] 기본타입
  • [TypeScript] 설치 및 환경 구축
  • [TypeScript] 개요
Naah
Naah
  • Naah
    blueprint
    Naah
  • 전체
    오늘
    어제
    • 분류 전체보기 (106)
      • Java (28)
      • Kotlin (0)
      • TypeScript (7)
      • React (22)
      • Next.js (1)
      • Spring (22)
      • JPA (12)
      • Spring Data JPA (6)
      • Querydsl (1)
      • Error (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • manage
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Naah
[TypeScript] 타입 선언/ 별칭/ 옵션
상단으로

티스토리툴바