TypeScript(5)
-
함수에 타입 지정하기
함수는 파라미터와 리턴 값에 타입 지정이 가능하다. function 두배(x: number) :number{ return x * 2 } 리턴값이 없는 경우 void 타입을 지정할 수 있다. function 리턴없는함수(x: string) :void{ console.log(x) } //에러나는 경우 function 리턴있는함수(x: string) :void{ return(x) } 파라미터가 옵션인 경우 function 파라미터는 옵션(x? :number) { // number | undefined 와 같다. ... } function 파라미터는 옵션(x? :number) :number { // 리턴 값이 number가 아닐수도 있으므로 에러 발생. return x }
2022.12.21 -
Type alias(타입 변수)
// Type Aliases (별칭) type Coffee = { name: string, cost: number}; let 커피1: Coffee = { name: '아메리카노', cost: 4000}; let 커피2: { name: string, cost: number} = { name: '카페라떼', cost: 5000}; 타입도 변수처럼 선언해서 쓰는 것. 위 처럼 object 타입도 저장 가능하다. 커피1은 선언한 타입변수를 사용한것. 커피2는 타입을 지정해준것. type Animal = string | number | undefined; let 동물 :Animal; 최근에 ES6 공부할 때 , 아래와 같은 상황을 봤는데 예상과 달리 타입스크립트에서도 막을 수 없다더라. 따라서 객체 내 값을 잠궈..
2022.08.15 -
Type Narrowing
유니온 타입의 경우 위의 연산을 하려면 조건을 달아주거나 Assert 하거나 해주어야 한다. Type Narrowing 타입이 확실하지 않을 때 생기는 부작용을 막기위한 장치. defensive 하게 코딩한다고 한다. Type Assertion 변수명 as number -> 함수에 무조건 숫자가 들어올 것임을 알고 있을 때 안전하게 쓸 수 있는 문법. number로 타입을 변경해주는것은 아니다. 주장만 해주는 것이다. as를 쓰면 간편하지만 정확히 코드를 쓰려면 narrowing 을 쓰는 것이 좋다. 임시로 에러 해결용으로 사용하거나 어떤 타입이 들어올지 정말 확실하게 알고 있는데 컴파일러 에러가 방해할 때 사용한다.
2022.08.15 -
타입을 미리 정하기 애매할 때
타입스크립트는 타입을 지정해주어야 하는데 타입을 미리 정하기 애매할 때에 사용하는 것들은 무엇이 있을까. Union type OR 연산자 같은 느낌으로 Union type을 지정해준다. 유니온 타입은 이렇게 선언할 수 있고 타입만 따로 선언한 이후에 쓸 수도 있다. string, number를 선언하고 문자열 또는 정수에는 오류가 안뜨지만 boolean 값을 할당하면 오류가 뜬다. let 회원들: (string | number)[] = [1,'2',3]; let 오브젝트 : {a: string | number} = {a: 123} 배열 또는 객체에 Union type 선언하기. Unknown : 타입 지정 애매한데 약간의 안정성은 챙겨간다. let 언노운 :unknown; 언노운 = 123; 언노운 = ..
2022.08.15 -
TypeScript 쓰는 이유 ?
항해 99를 끝마치고나서 채용정보들을 둘러보는데 여기저기 전부 TypeScript가 있더라. 그래서 어디 나도 한번 해보자라는 마음가짐으로 시작한다. 타입스크립트를 쓰는 이유는 자바스크립트가 너무 자유분방한 놈이라서 그렇다. 가끔 알고리즘 문제나 유튜브에 보면 자바스크립트에선 이게 된다고? 싶은 것들이 너무 많다. 그놈의 다이나믹 언어라서 .. 그래서 좀 더 규칙을 세우고 엄격한 틀에서 하자는게 타입스크립트다. 타입스크립트는 변수를 만들 때 타입지정을 해준다. 변수명: 타입명 으로 쓰는데 타입으로 쓸 수 있는 것들은 string, number, boolean, bigint, null, undefined, [], {} 등이 있다. let 이름 :string = 'jeon'; let 배열 :string[] ..
2022.08.15