관리 메뉴

IT & Life

TypeScript 란 무엇입니까? 산업용 자바 스크립트 본문

IT 관련 정보

TypeScript 란 무엇입니까? 산업용 자바 스크립트

미운앙마 2017. 11. 4. 15:16

https://www.infoworld.com/article/2871804/javascript/typescript-industrial-strength-javascript.html

 

 

자바 스크립트는 웹 언어이지만 엔터프라이즈 급 개발을 관리하기는 어렵습니다. TypeScript는 매력적인 대안을 제공합니다.


21 세기에 자바 스크립트의 출현을 지배적 인 프로그래밍 언어로 생각하는 역사 학자들은 도널드 럼즈펠드 전 국방 장관의 말을 인용 해 "당신이 가진 군대가 아닌 군대와 함께 전쟁에 나설 것"이라고 밝혔다.

 

프로그래머가 점점 더 늘어남에 따라 JavaScript는 우리가 가진 군대입니다. 우리가 클라이언트와 서버 측 모두에서보다 야심 찬 계약을 맺기 위해 현장으로 보내면 우리는 언어 자체와의 싸움을하게됩니다.

 

InfoWorld의 TypeScript 버전 기능 추적기 로 TypeScript의 자주 업데이트를 유지하십시오 . | InfoWorld의 App Dev Report 뉴스 레터를 통해 프로그래밍에 대한 뜨거운 주제를 놓치지 마세요 .


JavaScript는 내부 모듈과 외부 라이브러리 간의 복잡한 통신을 관리하기 위해 정교한 도구를 사용하는 팀이 만든 대규모 프로그램 용으로 만들어진 적이 없었습니다. 그러한 팀은 Java 및 C #과 같이 강하게 타자를 치는 언어를 오랫동안 선호 해 왔습니다. 그러나 이들 언어의 가상 머신은 브라우저에서 홈을 발견하지 못했습니다. 자바 스크립트 대안과 향상이 유비쿼터스 자바 스크립트 가상 머신을 목표로하는 것은 필연적이었다.

그 중에는 Anders Hejlsberg의 발명품 인 TypeScript가 있습니다. Turbo Pascal 및 C #을 만든 개발자는 Microsoft를 대신하여 유용한 혜택을 제공하고 앞으로 나아갈 수있는 중요한 프로젝트를 만들었습니다.

 

TypeScript 시작하기는 쉽습니다.

 

TypeScript 언어는 선택적으로 입력되는 JavaScript의 수퍼 집합입니다. 기존 JavaScript는 유효한 TypeScript이기 때문에 파일 확장명을 .js에서 .ts로 간단히 변경하여 TypeScript 컴파일러 및 TypeScript 인식 도구를 사용할 수 있습니다.

 

그것은 시작하는 좋은 방법으로 밝혀졌습니다. TypeScript는 definitelytyped.org 에서 수집 된 유형 정의 덕분에 유형 참고를 자신의 코드에 추가하기 전에도 즉시 유용 할 수 있습니다 . 수백 개의 자바 스크립트 라이브러리 (jQuery, Angular , Bootstrap 포함)에 대한 정의는 해당 라이브러리에서 내 보낸 인터페이스를 설명합니다. TypeScript 인식 도구는 이러한 정의를 사용하여 주석이 첨부 된 라이브러리를 가져 오는 TypeScript 프로그램으로 형식 인식을 전달합니다.

 

같은 유형의 인식 기능이 JavaScript의 핵심 라이브러리와 브라우저 DOM (Document Object Model)에 대해 이식성있는 방식으로 제공됩니다. TypeScript는 TypeScript로 작성되고 모든 플랫폼에서 JavaScript VM을 대상으로하며 컴파일러뿐만 아니라 코드 인텔리전스를 지원하는 언어 서비스 세트를 제공하므로 이식성이 뛰어납니다.

 

Visual Studio는 이러한 서비스의 한 소비자입니다. 기타 WebStorm, Eclipse 및 Sublime Text가 있습니다. 또한 TypeScript 놀이터 , 명령문을 완료하고 매개 변수와 유형에 대한 프롬프트를 표시하며 유형 오류에 대해 경고하는 대화식 웹 페이지가 있습니다.

 


TypeScript 시작 방법

 

TypeScript를 채택하는 가장 좋은 방법은 변화하는 방식으로 작업에 접근하는 것입니다. 변경되지 않은 JavaScript 코드에 유형 주석을 추가하기 시작합니다. 문자열, 숫자 및 날짜 사이의 JavaScript의 암묵적인 변환은 함수로 유입되거나 유출 된 객체의 유형을 시각화하는 것을 어렵게 만듭니다. 물론 주석에 이러한 기대치를 문서화 할 수 있지만 강력한 도구 지원 없이는 이러한 문서가 코드의 실제와 다릅니다.

 

TypeScript를 사용하면 개발 과정에서 해당 설명서가 코드의 일부로 사용되며 Visual Studio와 같은 IDE를 사용하여 설명서를 실제로 사용할 수 있습니다. 그러나 그것은 모두 편리한 환상입니다. 자바 스크립트로 컴파일하면 주석이 사라집니다. 그러한 주석을 추가 한 것만으로 완료 한 경우 결과 JavaScript는 원래 주석 처리되지 않은 코드와 정확히 일치합니다. 클래스 및 모듈을 사용하도록 코드를 재구성 한 경우 브라우저 및 독립 실행 형 디버거에서 TypeScript 소스 레벨 디버깅을 위해 컴파일러에서 제공하는 JavaScript 소스 맵을 사용할 수 있습니다.

 

헤일 즈 버그 (Hejlsberg)는 "유형을 켜고 끄는 스위치가있는 대신 다이얼이 있습니다."라고 말하면서 점진적 보상을 위해 점진적인 노력을 기울일 수 있습니다. 어노테이션을 추가 할 때 코드에 대한 추론 능력을 향상시키고 도구를 사용하여 해당 추론에 대해보다 강력한 자동화 된 지원을 제공 할 수 있습니다.

 

TypeScript 컴파일러는 가능한 유형을 추론하기 위해 열심히 노력하기 때문에 승수 효과도 있습니다. 함수가 문자열을 반환한다고 말하면 문자열 유형으로 변수에 주석을 추가하지 않은 경우에도 해당 함수의 결과를 보유하는 변수가 문자열임을 알 수 있습니다. 나중에 번호를 지정하려고하면 컴파일러에서 불평 할 것입니다.

 

필자의 초기 TypeScript 작업에서 일단 모든 기본 유형을 검사하면 기본 유형으로 작성된 JavaScript 객체를 모델링하는 간단한 클래스를 작성하기 시작했습니다. 이러한 복합 개체에 대한 형식 주석을 추가함에 따라 Visual Studio에서는 멤버를 코드 완성에 사용할 수있게되었습니다. 이러한 객체를 매개 변수로 받거나 반환 한 함수는 자체 설명 및자가 점검이되었습니다. 다시이 코드 인식은 프로그램을 통해 흘러갔습니다. JavaScript에서는 변수에 할당 할 반환 값이 예상하는 유형인지 여부를 알 수 없습니다. 그 불확실성은 많은 혼란과 오류를 초래합니다. 왜 그것을 용납합니까?

 

TypeScript에는 (소프트웨어) 테스트가 있습니다.

 

자바 스크립트와 같은 동적 유형화 된 언어의 인기가 높아지면서 셀프 테스트 소프트웨어를 작성하는 관행에 대한 인식이 높아졌습니다. 결과적으로 두 가지 추세를 조화시키는 경향이있었습니다. 테스트 커버리지가 충분히 견고하다면 정적 유형의 오버 헤드가 발생할 이유가 없다고 말하는 사람들도 있습니다.

 

우리는 정적 타이핑의 필요성을 제거하는 테스트 작성의 타당성에 대해 토론 할 수 있습니다. 그러나 유형 안전성이 중요하게 중요하다는 주장을 구입하면 TypeScript는 테스트 작업에 대한 투자 방법을 고려하도록 초대합니다.

 

테스트는 결국 오버 헤드의 또 다른 종류입니다. 작성하고 유지 관리하는 코드가 많습니다. 틀림없이 기계적으로 테스트 할 수있는 것은 있어야합니다. 컴퓨터가 두 소프트웨어 객체가 호환되는지 여부를 파악할 수 있다면 사람들은 해당 소프트웨어 객체에 위임해야합니다. 그러한 테스트가 수행하는 소프트웨어를 작성하는 것과 같은 테스트를 작성하는 것은 인간의 지능을 필요로하고 이로부터 이익을 얻는 창의적인 행동입니다. 자동 유형 검사는 이러한 관점에서 높은 목적을 위해 인간의 창의력을 자유롭게하는 방법입니다.

 

이러한 높은 목적 중 하나는 효과적인 이름 지정입니다. "컴퓨터 과학에는 단지 두 가지 어려운 일이 있습니다." "무효화 및 명명 이름 지정"이라고 유명한 말로 유명합니다. 변수, 함수, 클래스 및 모듈의 이름은 가장 기본적인 종류의 문서입니다.

 

프로그램에서 자신의 역할을 유용하게 묘사하는 이름을 동전에 넣기는 어렵습니다. 진행중인 프로그램 개발 중에 이러한 역할이 발전함에 따라 그 이름을 조정하는 것이 더 어렵습니다. 이는 소프트웨어 나 다른 영역에서 어떤 것도 잘 명명하는 것이 본질적으로 어렵 기 때문에 부분적으로 그렇습니다. 그러나 소프트웨어에서 이름이 다른 상황에 나타나고 다른 의미를 지니는 이름을 쉽게 인식 할 수없는 경우 특별한 위험이 있습니다. 그것이 자바 스크립트의 상황입니다. 코드를 모듈로 구성하기위한 여러 가지 호환되지 않는 해결 방법이 있지만 언어 자체는 코드를 지원하지 않습니다.

 

ECMAScript 6는 큰 발전을 가져 왔습니다. 이것은 많은 파일에 걸쳐 모듈 세트로 확산 될 수있는 프로그램을 구성하는 표준 방법을 제공했습니다.

 

TypeScript가 채택한 그 메커니즘은 대규모 개발에 큰 도움이됩니다. 모듈 종속성이 표준 방식으로 선언되면 프로그래머는 이러한 종속성을 더 쉽게 이해할 수 있고 도구는 해당 이해를 자동화 할 수 있으며 코드 리팩토링은 위험이 적습니다.

 

예를 들어, 기존 자바 스크립트 환경에서는 모듈 스코프 또는 클래스 스코프 된 변수, 함수 또는 클래스의 이름을 여러 파일에서 변경하는 것이 위험합니다. 이름이 의미하는 것인지 알 수있는 방법이 없으므로 다른 맥락에서 다른 것. TypeScript 인식 IDE는 이러한 리팩터링을 알고 있으며 안전하게 작동 할 수 있습니다.

 

Comments