js모듈을 TS에서 사용할 경우의 예시!

src/common.js

const heropy = {
  name: 'Heropy',
  age: 85
}
module.exports = {
  heropy
}

src/common.d.ts

interface User {
  name: string
  age: number
}
declare const heropy: User
export {
  heropy
}

src/main.ts

// compilerOptions.esModuleInterop = false
import * as commonjs from './common'
// compilerOptions.esModuleInterop = true
import commonjs from './common'

console.log(commonjs.heropy)

유틸리티 타입

타입스크립트에서 제공하는 여러 전역 유틸리티 타입이 있다.

타입 변수 T는 타입, U는 또 다른 타입, K는 속성을 의미하는 약어이다.
이해를 돕기 위해 타입 변수를 TTYPE 또는 TYPE1, UTYPE2, KKEY로 명시한다.

유틸리티 이름설명 (대표 타입)타입 변수
PartialTYPE의 모든 속성을 선택적으로 변경한 새로운 타입 반환 (인터페이스)<TYPE>
RequiredTYPE의 모든 속성을 필수로 변경한 새로운 타입 반환 (인터페이스)<TYPE>
ReadonlyTYPE의 모든 속성을 읽기 전용으로 변경한 새로운 타입 반환 (인터페이스)<TYPE>
ReadonlyArray<TYPE>
RecordKEY를 속성으로, TYPE를 그 속성값의 타입으로 지정하는 새로운 타입 반환 (인터페이스)<KEY, TYPE>
PickTYPE에서 KEY로 속성을 선택한 새로운 타입 반환 (인터페이스)<TYPE, KEY>
OmitTYPE에서 KEY로 속성을 생략하고 나머지를 선택한 새로운 타입 반환 (인터페이스)<TYPE, KEY>
ExcludeTYPE1에서 TYPE2를 제외한 새로운 타입 반환 (유니언)<TYPE1, TYPE2>
ExtractTYPE1에서 TYPE2를 추출한 새로운 타입 반환 (유니언)<TYPE1, TYPE2>
NonNullableTYPE에서 nullundefined를 제외한 새로운 타입 반환 (유니언)<TYPE>
ParametersTYPE의 매개변수 타입을 새로운 튜플 타입으로 반환 (함수, 튜플)<TYPE>
ConstructorParametersTYPE의 매개변수 타입을 새로운 튜플 타입으로 반환 (클래스, 튜플)<TYPE>
ReturnTypeTYPE의 반환 타입을 새로운 타입으로 반환 (함수)<TYPE>
InstanceTypeTYPE의 인스턴스 타입을 반환 (클래스)<TYPE>
ThisParameterTypeTYPE의 명시적 this 매개변수 타입을 새로운 타입으로 반환 (함수)<TYPE>
OmitThisParameterTYPE의 명시적 this 매개변수를 제거한 새로운 타입을 반환 (함수)<TYPE>
ThisTypeTYPEthis 컨텍스트(Context)를 명시, 별도 반환 없음! (인터페이스)<TYPE>
profile
개발자 꿈나무

0개의 댓글