옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 화살표함수
  • do-while문
  • 인스턴스멤버
  • 변수선언
  • ==
  • 자바스크립트
  • TypeScript
  • switch문
  • 접근제한자
  • sort() 메서드
  • 정적멤버
  • 혼자 공부하는 자바
  • java
  • 리액트를다루는기술
  • Node.js
  • break문
  • useState
  • continue문
  • java.util패키지
  • 노마드코더
  • java.lang패키지
  • toFixed
  • js
  • useMemo
  • join()
  • useCallback
  • useRef
  • 타입변환
  • reduce
  • JavaScript
  • 자바
  • match()
  • join() 메서드
  • map() 함수
  • useEffect
  • map
  • 타입스크립트
  • 백준
  • While문
  • 코드스플리팅
  • 혼자공부하는자바
  • 템플릿리터럴
  • 기본api클래스
  • 자바스트립트
  • fillter
  • reverse() 메서드
  • 리액트
  • template literal
  • 함수선언
  • indexOf()

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

[TS] Typescript #day2
TypeScript

[TS] Typescript #day2

2024. 12. 18. 23:48

# Types of TS part One

선택적 타입 (Optional Type)

: 필수적으로 존재하지 않아도 되는 속성

 

사용법 : 이름 뒤에 물음표(?)를 추가한다.

type Player = {
  name : number,
  age?: string
}

 

 

타입 별칭 (Type Alias)

특정 타입에 이름을 부여하여 코드의 가독성을 높이고 재사용성을 향상시킴

type Age = number;
type Name = string;

type Player = {
  name : Name,
  age?: Age
}

const nico : Player = {
  name : "nico",
}
const lynn : Player = {
  name : "lynn",
}

type User = {
  id: number;
  name: string;
  email: string;
};

const getUser = (user: User): string => {
  return `User Name: ${user.name}, Email: ${user.email}`;
}

 

인자 타입/리턴값 타입

function playerMaker(name:string) : Player {
  return {
    name  
  }
} 
const PlayerMaker = (name:string) : Player => ({name})

const nic = playerMaker("nico")
nic.age = 12

 

#Types of TS part Two

readonly

: 값을 수정하려고 하면 ts가 멈춰줌. 이는 readonly(읽기 전용)이기 때문에 예상되지 않은 상태 변경에 보호장치를 얻게 되는 것

const numbers : readonly number[] = [1,2,3,4]

 

undefined/null

let a: undefined = undefined
let b : null = null

 

Tuple 

: 길이와 각 요소마다의 타입이 고정된 배열

const player: [string, number, boolean] = ["nico", 12, false]

 

any type

  • 모든 타입을 허용할 수 있는 타입
  • typescript 의 보호 장치를 모두 잃어버리게 하기 때문에 사용하지 않는게 좋음.
  • 가끔 써야할 때가 있지만 좋은 규칙은 아님.
const c : any = true

 

#Types of TS part Three

unknown

  • 변수의 타입을 미리 알지 못할 때 사용한다.
  • 예를 들어, 만약 api로부터 응답을 받는데 그 응담의 타입을 모른다면 unknown으로 막아줄 수 있음
  • 그러면 타입스크립트가 강제로 타입을 확인해줌
let d : unknown;

if(typeof d === 'number') {
  let e = d + 1;
}

if(typeof d === 'string') {
  let e = d.toUpperCase();
}

 

void

아무것도 return 하지 않는 함수의 타입

function hello() {	
   console.log('x')
}

function hello():void {	
   console.log('x')
}


never

  • 함수가 절대 return하지 않을 때 발생
  • 예를 들어, 함수에서 exception(예외)이 발생했을 때 사용
function bye(): never {
   throw new Error("xxx")
}
function good(name: string | number) {
  if(typeof name === "string") {
    name // string
  } else if( typeof name === "number") {
    name // number
  } else { 
    name  // 여기에 뭘 쓰던 타입은 never임.
  }
}

저작자표시 비영리 변경금지 (새창열림)

'TypeScript' 카테고리의 다른 글

[TS] Typescript #day3  (2) 2024.12.18
[TS] Typescript #day1  (2) 2024.12.16
[TypeScript] 타입스크립트란?  (2) 2024.02.26
[Error] addCase cannot be called with two reducers for the same action type  (3) 2023.11.23
    'TypeScript' 카테고리의 다른 글
    • [TS] Typescript #day3
    • [TS] Typescript #day1
    • [TypeScript] 타입스크립트란?
    • [Error] addCase cannot be called with two reducers for the same action type
    옝옹
    옝옹

    티스토리툴바