[Typescript] types

DONNIE·2023년 10월 4일
1

Typescript

목록 보기
1/2

types

  1. Boolean
let isValid : boolean = false;
  1. Number
let num:number = 10;
  1. String
let str : string = 'text';
  1. Object
let obj : object = {name="yourName", age:20};
  1. Array
let arr : number[] = [1,2,3,4,5];
or
let arr : Array<number> = [1,2,3,4,5];
  1. Tuple
let arr: [atring, number] = ['hi',12];
arr[1].concat('test'); // Error, 'number' does not have 'concat'
arr[5] = 'hello;; // Error, Property '5' does not exist on type '[string, number]'
  1. Enum
  • 값 자동할당, 인덱스와 키값으로 양방향 매핑
enum fruits {apple, banana, orange}
let a: fruits = fruits.apple;

console.log(a) // 값이 자동으로 할당되어 0이 출력됨
  • 인덱스로 값 불러오기
enum fruits {apple, banana, orange}
let a: fruits = fruits.apple;
let b: string = fruits[0] 

console.log(a) // 0
consolt.log(b) // 'apple'
  • 원하는 인덱스 값 부여시, 해당 인덱스부터 순차적으로 생성
enum fruits { apple=12, banana, orange }
let a:string = apple[12]

console.log(a) // 'apple'
  • 인덱스 대신 문자열 부려, 단방향 매핑
enum fruits = { apple='red', banana='yellow', orange='orange'}
let a:string = fruits.apple;

console.log(a) // 'red'
  1. Any
let str:any = 'hi';
let num:any = 3;
let arr:any ['a',2,true];
  1. Void
  • 변수엔 undefined / null, return 값을 설정할 수 없음
function sayHi() : void {
	console.log('Hi')
}
let a:void = null;
let b:void = undefined;
  1. Null
let a : null = null;
  1. Undefined
let a:undefined = undefined;
  1. Never
function invalid(message:string): never {
	throw new Error(message);
}
function infiniteAnimate(): never {
	while(true) { infiniteAnimate(); }
}
  1. 사용자 정의 타입
type operation = {
	data : number[],
    output :(num:numbrt)=>number[]
}
let sum:operation = {
	data: [10,30,60],
    output(num) {
    	return this.data.map(n=>n+num);
    }
}
let multiply:operation = {
	data:[110,230, 8790, 231],
    output(num) {
    	return this.data.map(n=>n*num);
    }	
}

  1. Union
// : string 은 함수의 반환값이 문자열임을 명시
function getAge(age:number | string) : string {
	if(typeof age === 'number') {
    	return age.toString();
    }else {
    	return age;
    }
}
profile
후론트엔드 개발자

0개의 댓글