Typescript  헷갈리는 부분 정리
web/Typescript

Typescript 헷갈리는 부분 정리

반응형

Any vs Object vs Unknown 

- typescript에서 모든 타입은 any type의 서브 타입들이다. 그래서 어떠한 제약도 없는 모든 타입을 받아서 사용할 수 있다. 

- object non privitive type으로 undefined, string, boolean, symbol같은 primitive type을 허용하지 않는다. 대신 null은 허용된다. (null은 태생이 object)

- unknown 타입은 any 타입처럼 어떤값도 넣을 수 있다. 하지만 ts compiler는 unknown 타입에 대한 어떤 오퍼레이션도 허용하지 않는다. 게다가 unknown 타입은 오직 any 타입만 할당 할 수있다.

Unknown type operation 금지
Unknown은 any타입이외에 할당 불가

 

 

자료형 캐스팅 방법

- let strLength: number = (<string>someValue).length;

- let strLength: number = (someValue as string).length;

 

 

readonly vs const

- 두 가지 모두 기존 데이터를 수정할 수 없게 하는 예약어이지만 readonly는 클래스 변수에, const는 메소드 내 지역변수에서 사용된다.

 

 

symbol

- number, string의 non primitive 형태의 데이터를 primitive하게 해주는 역할

- 자바에서 new String(). new Integer()와 같은 것으로 두 개의 비교는 == 로 할 수없다. 왜냐하면 애초에 같은 값이여도 서로 다른 주소를 가리키는 객체가 되기 때문. 유니크한 형태의 primitive를 만들어 주는 것

 

 

declare

- 타입스크립트 컴파일러에게 해당 변수가 어딘가에 선언되어 있따고 알려주는 행위로써 전역변수를 사용할 떄도 사용되고 .d.ts 파일을 만들때 사용

https://stackoverflow.com/questions/35019987/what-does-declare-do-in-export-declare-class-actions

 

import vs require

- 둘다 같은 기능이나 require는 레거시 import 사용 권장

 

https://www.typescriptlang.org/docs/home.html

 

Documentation · TypeScript

Learn everything you need to know about TypeScript. New to TypeScript? # Already familiar with TypeScript? # Having trouble finding what you’re looking for? Tell us so we can better help you!

www.typescriptlang.org

 

반응형