TypeScript가 뭐지?

bow!·2022년 11월 1일
0

지식

목록 보기
1/1

요새 채용공고에 보면 React와 TypeScript를 자주 보고 있다.



💡 TypeScript가 뭘까?

쉽게 풀어보자면..
오타 교정, 타입 체크 ( 문자인지 숫자인지 ~기타 등등)
자바스크립트가 다이나믹타이핑을 지원하는 걸 막아주는 언어라고 해야 할까?
공항 검색대처럼 굉장히 엄격한 언어라고 할 수 있다

그럼 다이나믹 타이핑은 뭘까?

변수를 지정할 때 데이터 타입을 명시하지 않아도 컴퓨터가 알아서 해석하도록 해준다고 쓰여있다.
사람처럼 비유하자면 "거기에 있는 그거 좀 줘봐" 가 아닐까?



💬 어떻게 사용해야할까?

변수를 쓸 때

var name = "kim";

에서 타입을 지정해 주면 된다.



var name : string = "kim";

이런 식으로 사용할 수 있는 방법이 많다.



let name : string[] = ["kim","lee"...]

let name : string | number = 4885;

let age : { 나이 : number } = { 나이 : number };

type nameType = string | number;
let name : nameType = 'lee'

let user : [string,number] = ['kim',10]

//함수를 사용할때는 타입을 미리 체크해줘야한다
function 함수( a : number) { 
	if(typeof x === 'number'){
    	return a * 2
    }

// object 타입
type userType={
	name? : string, // name 속성이 string거나 name이 undefined라는 의미이다
    age : number
}
let kim : userType = {
	name : 'kim',
    age : 10
}

//object안에 속성이 전부 같은 속성일때 타입 지정하는것도 있다
let Person : { [key : string] : number } = {
    na_E : 10,
    kI : 190,
    mu_gea : 100
  }

//class도 사용가능하다 대신 중괄호안에 변수를 만들어야 사용가능




하지만 꼭 타입을 지정하지 않아도 알아서 타입을 지정해 준다

편하다.. 그래도 나는 주니어_주니어 니까 사용하는 버릇을 만들자


추가로


let name ;
name = 'kim'

일 때 let name : Any 가 된다. 타입 속성을 해제하는 거랑 같은 의미이다


Any와 unknown 타입이 있는데
타입이 지정된 변수 = Any텍스트로 지정된 변수 는 에러가 나지 않지만
타입이 지정된 변수 = unknown로 지정된 변수 는 에러가 난다






👀 사용해보자


function 함수( a : number | string ) {
	return a + 1;
}

이런 계산식을 사용하는 함수가 있다고 하자 그렇다면 문자 형식으로 된 숫자가 입력된다면?

어떻게 사용하는 방법들이 있을까?



Narrowing

 function 함수( a : number | string ) {
    if ( typeof a === "number") { // in , instanceof 사용 가능
        return a + 1
      }
      else if ( typeof a === "string"){
        return a + 1
      }
      else {return 0}
  }

Assertion

function 함수(a : number | string) {
	return (a as number) + 1 
    // a를 number로 인식하게 만듬 하지만 인식만할뿐 임시해결용에 가깝다.
}

Assertion은 확실할 때아니면 임시로 에러 해결할 때 사용하고 나머진 Narrowing을 사용해야겠다.

profile
이녀석공부해야지

0개의 댓글