728x90
728x90

01 타입스크립트와 개발 환경 만들기

01-1 타입스크립트란 무엇인가?

01-2 타입스크립트 주요 문법 살펴보기

  • 타입스크립트는 ESNext 문법을 대부분 지원
  • 타입스크립트 고유의 문법
    • 타입 주석(type annotation)과 타입 추론(type inference)
      01: let n: number = 1  // 타입 주석
      02: let m = 2          // 타입 추론 : 대입 연산자(=)의 오른쪽 값을 분석해 왼쪽 변수의 타입을 결정
    • 인터페이스
      01: interface Person {
      02:   name: string
      03:   age?: number
      04: }
      05:
      06: let person: Person = { name: "Jane" }
    • 튜플(tuple)
      01: let numberArray: number[] = [1, 2, 3]                   // 배열
      02: let tuple: [boolean, number, string] = [true, 1, 'OK']  // 튜플
    • 제네릭 타입(generic type)
      01: class Container<T> {
      02:   constructor(public value: T) { }
      03: }
      04: let numberContainer: Container<number> = new Container<number>(1)
      05: let stringContainer: Container<string> = new Container<string>('Hello World')
    • 대수 타입(algebraic data type) : 다른 자료형의 값을 가지는 자료형을 의미
      01: type NumberOrString = number |string   // 합집합 타입(union 또는 sum type) 예
      02: type AnimalAndPerson = Animal &Person  // 교집합 타입(intersection 또는 product type) 예

01-3 타입스크립트 개발 환경 만들기

 

 

02 타입스크립트 프로젝트 생성과 관리

02-1 타입스크립트 프로젝트 만들기

  • tsconfig.json 파일 생성
    • 타입스크립트 컴파일러의 설정 파일
    • tsc --init 명령으로 생성
      01: {
      02:   "compilerOptions": {
      03:     "module": "commonjs",
      04:     "esModuleInterop": true,
      05:     "target": "es5",
      06:     "moduleResolution": "node",
      07:     "outDir": "dist",
      08:     "baseUrl": ".",
      09:     "sourceMap": true,
      10:     "downlevelIteration": true,
      11:     "noImplicitAny": false,
      12:     "paths": { "*": ["node_modules/*"] }
      13:   },
      14:   "include": ["src/**/*"]
      15: }
  • package.json 수정
    • 개발이 완료되면 타입스크립트 소스코드를 ES5 자바스크립트 코드로 변환해 node로 실행
    • 이를 위해 package.json 파일 내 script 항목에 devbuild 명령 추가

02-2 모듈 이해하기

  • 모듈(module) : index.ts와 같은 소스 파일
  • 모듈화(modulization) : 코드 관리와 유지, 보수를 위해 모듈마다 고유한 기능을 구현하는 방식
  • export 키워드 : 기능을 제공하는 쪽에서 사용
    • function 키워드 외에도 interface, class, type, let, const 키워드 앞에도 붙일 수 있음
  • import 키워드 : 다른 모듈의 기능을 이용하는 쪽에서 사용
    import { 심벌 목록 } from '파일의 상대 경로'  // 가장 기본적인 형태
    import * as 심벌 from '파일 상대 경로'
  • export default 키워드
    • 한 모듈이 내보내는 기능 중 오직 한 개에만 붙일 수 있음
    • import문으로 불러올 때 중괄호 { } 없이 사용할 수 있음

02-3 tsconfig.json 파일 살펴보기

  • module
    • 동작 대상 플랫폼이 웹 브라우저인지 노드제이에스인지를 구분해 그에 맞는 모듈 방식으로 컴파일하려는 목적
  • moduleResolution
    • module 키의 값이 commonjs이면 moduleResolution 키값은 항상 node로 설정
    • module 키의 값이 amd이면 moduleResolution 키값은 classic으로 설정
  • target
    • 트랜스파일할 대상 자바스크립트의 버전을 설정
    • 대부분 es5를 키값으로 설정 (최신 버전의 노드제이에스를 사용한다면 es6 설정)
  • baseUrloutDir
    • 트랜스파일된 ES5 자바스크립트 파일을 저장하는 디렉터리를 설정
  • paths
    • 소스 파일의 import문에서 from 부분을 해석할 때 찾아야 하는 디렉터리를 설정
  • esModuleInterop
    • 웹 브라우저에서 동작한다는 가정으로 만들어진 오픈소스 자바스크립트 라이브러리를 사용하기 위함
  • sourceMap
    • 키값이 true이면 트래스파일 디렉터리에는 .js.map 파일 생성
    • 변환된 자바스크립트 코드가 타입스크립트 코드의 어디에 해당하는지 알려주며 주로 디버깅할 때 사용
  • downlevelIteration
    • 생성기(generator) 구문이 정상적으로 동작하려면 키값을 true로 설정
  • noImplicitAny
    • 타입 미지정 시 오류를 무시하기 위해 false로 설정
출처 : Do it! 타입스크립트 프로그래밍
 

Do it! 타입스크립트 프로그래밍

‘타입스크립트’를 배우는 김에 ‘함수형 프로그래밍’까지 정주행하자!10만 건의 빅데이터 처리와 API 서버 & 리액트 웹 개발까지!이 책은 ES6 자바스크립트를 경험한 독자가 타입스크립트를

book.naver.com

728x90
728x90

VS Code에서 타입스크립트 컴파일러를 설치하고 설치된 컴파일러의 버전을 확인하는 명령을 입력하니
다음과 같은 오류가 발생한다.

PS D:\workspace\TIL\TSStudy> tsc -v
tsc : 이 시스템에서 스크립트를 실행할 수 없으므로...
자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.
위치 줄:1 문자:1
+ tsc -v
+ ~~~
    + CategoryInfo : 보안 오류: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

해결 방법은 아래와 같다.

  1. Windows PowerShell관리자 권한으로 실행한다.
  2. Get-ExecutionPolicy 명령을 입력하여 현재 권한을 확인한다.
  3. 권한이 RemoteSigned이 아니라면 Set-ExecutionPolicy RemoteSigned 명령을 입력하여 변경한다.
  4. 다시 Get-ExecutionPolicy 명령을 입력하여 권한이 변경되었는지 확인한다.

VS Code에서 다시 tsc -v 명령을 입력하면 오류 없이 컴파일러 버전을 확인할 수 있다.

 

참고 : [PowerShell] 이 시스템에서 스크립트를 실행할 수 없으므로 파일을 로드할 수 없습니다. 자세한 내용은about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오
 

[PowerShell] 이 시스템에서 스크립트를 실행할 수 없으므로 파일을 로드할 수 없습니다. 자세한 내

Visual Studio Code IDE 툴에서 TERMINAL 을 사용하여 webpack을 실행시 또는 다른 명령어 사용시 에러 해결 error message webpack : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\shimk\AppDa..

dog-developers.tistory.com

 

728x90
728x90