본문 바로가기

typescript9

union 타입 확정 - type narrowing, assertion (as) Type Narrowing if문과 typeof 키워드나 in, instanceof 등으로 현재 파라미터의 타입을 검사해서 타입이 number 면 이렇게 해주세요 ~, 타입이 string 이면 이렇게 해주세요 ~ 하는것. 타입이 확실하지 않을 때 생기는 부작용을 막기위한 장치임. 예를들면, 이렇게 그냥 variant 파라미터는 number 또는 string 이라는 union type 이기 때문에 "variant + 1 은 할수 없어요" 라고 에러를 띄워줌 여기에 적절한 narrowing 을 해준다면 "variant 파라미터의 타입이 number 면 variant +1 을 해주시구요, string 타입이면 variant +1 을 해주세요. 그것도 아니면 그냥 0을 반환해 주세요." 가 됨. 이렇게 코딩하는.. 2022. 6. 10.
union type, any, unknown - 타입 나중에 정하기 union type let newName: string | number = 'chris'; "이 변수의 타입엔 string 이나 number 타입이 들어올수 있습니다" 라는 뜻 할당하는 순간 그 자료형에 맞는 타입으로 변한다. any type 어떤 자료라도 다 넣을수 있다. any 타입은 버그를 발생 시킬 위험이 많고, 발생한 에러를 추적하기가 힘들게 만들기때문에 가급적이면 쓰지않는것이 좋다. any 타입 쓰면 타입스크립트를 쓰는 이유가 없음. unknown type unknown type 도 any type 처럼 아무 자료형이나 다 넣을수 있지만 어떤 타입이 들어오는지 명확히 모를 경우에는 any type 보다는 unknown type 을 쓰는게 그나마 나은데 그 이유는 any type 은 any ty.. 2022. 6. 8.
tsconfig.json - typescript 컴파일 세부 설정 기본 옵션 { "compilerOptions": { "target": "es5", // 타입스크립트파일을 어떤 버전의 자바스크립트로 바꿔줄지 정하는 부분 "module": "commonjs", //자바스크립트 파일간 import 문법을 구현할 때 어떤 문법을 쓸지 정하는 곳 "allowJs": true, // js 파일들 ts에서 import해서 쓸 수 있는지 "checkJs": true, // 일반 js 파일에서도 에러체크 여부 "jsx": "preserve", // tsx 파일을 jsx로 어떻게 컴파일할 것인지 'preserve', 'react-native', 'react' "declaration": true, //컴파일시 .d.ts 파일도 자동으로 함께생성 (현재쓰는 모든 타입이 정의된 파일) "o.. 2022. 6. 8.