[개발] typescript basic & basic types

typescript basic & basic types

https://www.typescriptlang.org/docs/handbook/basic-types.html

종류

  • number - integer(정수), float(실수) 를 포함한 모든 숫자 1,5.3,-10
  • string - 모든 문자열 값 HI
  • boolean - 참/거짓 true, false
  • object - 개체 타입 {age:30}
  • array - 목록 타입 [1,2,3]
  • tupple - 고정 길이의 배열 [number,array]
  • enum - 전역상수 식별자를 생성해줌 enum {NEW, OLD}
  • any - any(모든) 타입이 들어 갈 수 있음. ( 타입 미 지정 시 any )

타입 비교

if( typeof str === 'string'){
    
}

Object 타입 지정 및 할당

const person : {
    name : string;
    age : number;
    hobbies : string[];
}  = {
    name : 'wonsama',
    age : 17,
    hobbies : ['reading', 'traveling']
}

enum 예시

값 미 지정시 0부터 시작함. ( 문자열이나 다른 값 지정도 되나 default value 색상까지 지정 가능 )

enum Role { ADMIN, READ_ONLY, AUTHOR };

union types

N개 이상의 타입을 허용함.

// input 은 number 또는 string 둘 다 입력 가능
function combine(input : number | string){}

literal types

문자 형태의 타입, 아래의 경우 'on' 또는 'off' 만 입력 받을 수 있음.

function combine(input : 'on' | 'off'){}

type alias (타입 별칭)

type 키워드를 사용하여 타입 별칭을 사용할 수 있다. 코드 가독성을 늘려줌.

type Combineable = number | string;
type OnOff = 'on' | 'off';
function combine(input : Combineable, isOn:OnOff){}

함수 리턴

undefined 를 리턴 하여 구성할 수 있으나 void 를 사용하는 것을 권장함.

function printResult():void{

}
function printResult():undefined{
    return;
}

콜백 함수 형태

function addHandler(n1:number, n2:number, cb:(num:number)=>void){
    cb(n1+n2);
}

addHandler(3,2, (result)=>{
console.log(result);
})

unknown 타입

  1. any 인 경우에는 오류가 발생하지 않지만, 1) 이 unknown 인 경우에는 오류 발생
    unknown 은 타입을 좁혀서(narrowing) 사용해야 됨, any 는 그럴 필요가 없음.
    그래서 any 보다는 unknown 을 사용하는 것이 좀 더 안전하게 코딩을 할 수 있음 ( 아직은 좀 더 써봐야 될듯 싶음 )
let userInput:unknown;  // 1) 
let userName:string;

userInput = 5;
userInput = 'Max';

userName = userInput;   // 2)

naver 타입

never는 일반적으로 함수의 리턴 타입으로 사용됩니다. 함수의 리턴 타입으로 never가 사용될 경우, 항상 오류를 출력하거나 리턴 값을 절대로 내보내지 않음을 의미

function generateError(message : string, code : number) { 
    throw {message : message, code : code};
}

generateError('An error occured', 500);

Sort:  

@wonsama transfered 10 KRWP to @krwp.burn. voting percent : 9.38%, voting power : 59.14%, steem power : 1825981.83, STU KRW : 1200.
@wonsama staking status : 1670.929 KRWP
@wonsama limit for KRWP voting service : 1.67 KRWP (rate : 0.001)
What you sent : 10 KRWP
Refund balance : 8.33 KRWP [56412803 - 7548970c97710034644a29bf94af4463100fb7c4]

Coin Marketplace

STEEM 0.16
TRX 0.16
JST 0.029
BTC 68703.91
ETH 2503.79
USDT 1.00
SBD 2.54