TypeScript Deep Dive
  • README
  • 시작하기
    • 왜 타입스크립트인가
  • 자바스크립트
    • 비교 연산자
    • 참조 연산자
    • Null vs. Undefined
    • this
    • 클로저
    • Number
    • Truthy
  • 미래의 자바스크립트
    • 클래스
      • 즉시실행함수
    • 화살표 함수
    • 나머지 연산자
    • let
    • const
    • 비구조화 할당
    • 전개 연산자
    • for...of
    • 이터레이터
    • 템플릿 리터럴
    • 프로미스
    • 제네레이터
    • Async Await
  • 프로젝트
    • 컴파일러 제어
      • tsconfig.json
      • 파일 경로 지정
    • 선언
    • 모듈화
      • 파일을 이용한 모듈화
      • globals.d.ts
    • 네임스페이스
    • 동적 표현식 가져오기
  • Node.js 시작하기
  • Browser 시작하기
  • 타입스크립트 타입 시스템
    • 자바스크립트 마이그레이션 가이드
    • @types
    • 주변 선언
      • 파일 선언
      • 변수
    • 인터페이스
    • 열거형(Enums)
    • lib.d.ts
    • 함수
    • 콜러블(Callable)
    • 타입 표명(Type Assertion)
    • 신선도(Freshness)
    • 타입 가드
    • 리터럴(Literal)
    • 읽기 전용(readonly)
    • 제네릭
    • 타입 인터페이스
    • 타입 호환성
    • Never 타입
    • 구별된 유니온
    • 인덱스 서명(Index Signature)
    • 타입 이동하기
    • 예외 처리
    • 믹스인(Mixin)
  • JSX
    • React
    • Non React JSX
  • Options
    • noImplicitAny
    • strictNullChecks
  • 타입스크립트 에러
    • 에러 메세지
    • 공통 에러
  • NPM
  • 테스트
    • Jest
    • Cypress
  • Tools
    • Prettier
    • Husky
    • ESLint
    • Changelog
  • 팁
    • 문자열 Enums
    • 타입 단언
    • 상태 저장 함수
    • 커링
    • 제네릭 타입 예시
    • 객체 타입 설정
    • 유용한 클래스
    • Import / Export
    • 속성 Setters
    • outFile 주의사항
    • 제이쿼리 팁
    • 정적 생성자
    • 싱글톤 패턴
    • 함수 파라미터
    • 토글 생성
    • Import 여러개 하기
    • 배열 생성
    • 생성자에서 타입정의
  • 스타일 가이드
  • 타입스크립트 컴파일러 구조
    • Program
    • AST
      • TIP: Visit Children
      • TIP: SyntaxKind enum
      • Trivia
    • Scanner
    • Parser
      • Parser Functions
    • Binder
      • Binder Functions
      • Binder Declarations
      • Binder Container
      • Binder SymbolTable
      • Binder Error Reporting
    • Checker
      • Checker Diagnostics
      • Checker Error Reporting
    • Emitter
      • Emitter Functions
      • Emitter SourceMaps
    • Contributing
Powered by GitBook
On this page
  • Global Module
  • File Module

Was this helpful?

  1. 프로젝트

모듈화

Global Module

기본적으로 새로운 타입스크립트 파일에서 코드를 입력하면 코드가 전역 네임스페이스에 있습니다. 데모파일인 foo.ts를 고려하십시요.

var foo = 123

같은 프로젝트에서 bar.ts라는 새로운 파일을 만들면 타입스크립트의 타입시스템에서 전역에서 사용할 수있는 것처럼 foo변수를 사용할 수 있게됩니다.

var bar = foo // allowed

전역 네임스페이스는 위험하고 불필요합니다. 그것은 당신의 코드가 전역네임스페이스와 네이밍 충돌을 야기할 것 입니다. 우리는 파일을 모듈화해서 사용하길 추천합니다.

File Module

외부 모듈을 호출할때 만약 당신이 타입스크립트에서 import또는 export를 파일 최상단에서 생성하면 지역 스코프를 가집니다. 만약 당신이 이전에 만든 foo.ts를 다음과 같이 변경한다면 export 사용에 주의하십시요.

export var foo = 123

우리는 foo 변수가 전역 네임스페이스에 남아있지 않는다는 것을 다음 새로운 bar.ts 파일을 생성해봄으로써 입증할수 있습니다.

var bar = foo // ERROR: "cannot find name 'foo'"

만약 당신이 foo.ts를 bar.ts안에서 사용하는 확실한 방법은 다음과 같이 import를 이용해서 bar.ts를 업데이트 할수 있습니다.

import { foo } from './foo'
var bar = foo // allowed

import를 bar.ts에서 사용하면다른 파일의 내용을 가져올 수 있을뿐만 아니라 bar.ts파일을 module로 표시할 수 있습니다. 따라서 bar.ts의 선언은 전역 네임스페이스를 오염시키지 않습니다.

타입스크립트 파일은 외부 모듈을 사용하고 여기서 생성되는 자바스크립트는 module이라는 컴파일러 플래그에 의해 구동됩니다.

Previous선언Next파일을 이용한 모듈화

Last updated 5 years ago

Was this helpful?