본문 바로가기

FrontEnd

타입스크립트 프로젝트 도입을 통해 얻을수 있는 효과와 아닌것

반응형

과연 타입스크립트는 런타임 최적화를 수행할까요?

물론 약간의 효과는 얻을 수도 있을 것 같지만, 클린하며 예측 가능한 코드를 작성하면서 얻는 우발적 효과일 것 같습니다.

아래 문서는 TypeScript 언어의 기반이 되는 일반적인 디자인 원칙을 설명합니다.
철저하게 모든 원칙을 다루진 않지만, 언어의 설계를 결정하는데 근거가 된 규칙을 요약하는 것을 목표로 작성되어 있습니다.
이러한 규칙 중 일부는 주관적이며 때때로 서로 상충됩니다.
올바른 균형에 도달하고 올바른 예외를 만드는 것이 성공적인 프로그래밍 언어 설계의 핵심입니다.

https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

 

GitHub - microsoft/TypeScript: TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

TypeScript is a superset of JavaScript that compiles to clean JavaScript output. - GitHub - microsoft/TypeScript: TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

github.com

타입스크립트의 목표

  1. 오류 가능성이 있는 구문을 정적으로 식별하는 것
  2. 더 큰 코드 조각을 위한 구조화 메커니즘을 제공하는 것
  3. 내보낸 프로그램에 런타임 오버헤드를 부과하지 않는 것
  4. 깨끗(clean)하고 관용적이며 인식 가능한 JavaScript 코드를 내보내는 것
  5. 합성 가능하고 추론하기 쉬운 언어를 생성하는 것
  6. 현재 및 미래의 ECMAScript 제안과 일하는 것
  7. 모든 JavaScript 코드의 런타임 동작을 유지하는 것
  8. 식 수준 구문을 추가하지 않는 것
  9. 일관되고 완전히 제거할 수 있는 구조적 타입 시스템을 사용하는 것
  10. 크로스 플랫폼 개발 도구가 되는 것
  11. TypeScript 1.0에서 멀어지지 않는 것

타입스크립트의 목표가 아닌 것

  1. JS의 언어 디자인을 정확히 모방하지 않습니다.
    • 대신 JavaScript의 동작과 프로그램 작성자의 의도를 언어 설계의 적절한 지침으로 사용합니다.
  2. 프로그램의 런타임 성능을 적극적으로 최적화하지 않습니다
    • 대신 런타임 플랫폼의 성능 특성과 잘 어울리는 관용적인 JavaScript 코드를 내보냅니다.
  3. 건전하거나 "확실히 올바른" 타입 시스템을 적용하지 않습니다.
    • 대신 정확성과 생산성 사이의 균형을 유지하십시오.
  4. 종단 간 빌드 파이프라인을 제공합지 않습니다.
    • 대신 외부 도구가 보다 복잡한 빌드 워크플로우에 타입스크립트 컴파일러를 사용할 수 있도록 시스템을 확장 가능하게 만듭니다.
  5. 프로그램의 런타임 타입 정보를 추가하거나 의존하거나 타입 시스템의 결과에 따라 다른 코드를 내보내지 않습니다.
    • 대신 런타임 메타데이터가 필요하지 않은 프로그래밍 패턴을 권장합니다.
  6. 추가 런타임 기능 또는 라이브러리를 제공하지 않습니다.
    • 대신 TypeScript를 사용하여 기존 라이브러리를 설명합니다.
  7. 사용자를 놀라게 할 수 있는 동작을 도입하지 않습니다.
    • 대신 일반적으로 사용되는 다른 언어에서 채택한 패턴을 충분히 고려합니다.


반응형