etc./StackOverFlow

TypeScript는 무엇이며 JavaScript 대신 사용하는 이유는 무엇입니까? [닫은]

청렴결백한 만능 재주꾼 2022. 1. 2. 04:53
반응형

질문자 :Mohammed Thabet


TypeScript 언어가 무엇인지 설명해 주시겠습니까?

JavaScript 또는 사용 가능한 라이브러리가 수행할 수 없는 작업을 수행할 수 있으므로 고려해야 할 이유가 무엇입니까?



TypeScript가 여전히 인기가 많았을 때 원래 이 답변을 작성했습니다. 5년 후, 이것은 괜찮은 개요이지만 아래의 Lodewijk의 답변 에서 자세한 내용을 확인하세요.

1000피트 뷰...

TypeScript 는 주로 선택적 정적 타이핑, 클래스 및 인터페이스를 제공하는 JavaScript의 상위 집합입니다. 가장 큰 이점 중 하나는 IDE에서 코드를 입력할 때 일반적인 오류를 찾아낼 수 있는 보다 풍부한 환경을 제공할 수 있다는 것입니다.

무슨 말인지 이해하려면 해당 언어에 대한 Microsoft의 소개 비디오를 시청하십시오.

대규모 JavaScript 프로젝트의 경우 TypeScript를 채택하면 소프트웨어가 더욱 강력해지면서 일반 JavaScript 응용 프로그램이 실행되는 곳에 배포할 수 있습니다.

오픈 소스이지만 지원되는 IDE를 사용하는 경우 입력할 때만 영리한 Intellisense를 얻을 수 있습니다. 처음에 이것은 단지 Microsoft의 Visual Studio였습니다( Miguel de Icaza의 블로그 게시물에도 언급됨). 요즘에는 다른 IDE에서도 TypeScript 지원을 제공합니다 .

비슷한 기술이 또 있을까요?

CoffeeScript 가 있지만 실제로는 다른 용도로 사용됩니다. IMHO, CoffeeScript는 사람에게 가독성을 제공하지만 TypeScript는 선택적 정적 타이핑을 통해 도구에 대한 깊은 가독성도 제공합니다(좀 더 자세한 비평 은 이 최근 블로그 게시물 참조). Dart도 있지만 JavaScript를 완전히 대체할 수 있습니다(JavaScript 코드를 생성 할 수 있음).

예시

예를 들어 다음은 몇 가지 TypeScript입니다( TypeScript Playground 에서 이를 사용할 수 있음).

 class Greeter { greeting: string; constructor (message: string) { this.greeting = message; } greet() { return "Hello, " + this.greeting; } }

다음은 생성할 JavaScript입니다.

 var Greeter = (function () { function Greeter(message) { this.greeting = message; } Greeter.prototype.greet = function () { return "Hello, " + this.greeting; }; return Greeter; })();

TypeScript가 멤버 변수의 유형과 클래스 메소드 매개변수를 정의하는 방법에 주목하십시오. 이것은 JavaScript로 변환할 때 제거되지만 숫자 유형을 생성자에 전달하는 것과 같은 오류를 발견하기 위해 IDE 및 컴파일러에서 사용합니다.

또한 명시적으로 선언되지 않은 유형을 유추할 수 있습니다. 예를 들어, greet() 메서드가 문자열을 반환하는지 결정할 수 있습니다.

TypeScript 디버깅

많은 브라우저와 IDE는 소스맵을 통해 직접 디버깅 지원을 제공합니다. 자세한 내용은 이 스택 오버플로 질문을 참조하세요.Visual Studio로 TypeScript 코드 디버깅

더 알고 싶으십니까?

TypeScript가 여전히 인기가 많았을 때 원래 이 답변을 작성했습니다. 최신 세부 정보는 이 질문에 대한 Lodewijk의 답변 을 확인하십시오.


Paul Dixon

TypeScript와 JavaScript의 관계

타이프 라이터는 유형이 지정된 상위 자바 스크립트의 일반 자바 스크립트로 컴파일 - typescriptlang.org .

JavaScript는 다양한 이해 관계자로 구성된 그룹인 ECMA의 Technical Committee 39 에서 개발한 프로그래밍 언어입니다. TC39는 내부 표준 기구인 ECMA가 주최하는 위원회입니다. JavaScript는 다양한 공급업체(예: Google, Microsoft, Oracle 등)에서 다양한 구현을 제공합니다. JavaScript의 목표는 웹의 공용어가 되는 것입니다.

TypeScript는 단일 오픈 소스 컴파일러가 있으며 주로 단일 공급업체인 Microsoft에서 개발한 JavaScript 언어의 상위 집합입니다. TypeScript의 목표는 유형 시스템을 통해 조기에 실수를 포착하고 JavaScript 개발을 보다 효율적으로 만드는 것입니다.

기본적으로 TypeScript는 세 가지 방법으로 목표를 달성합니다.

  1. 최신 JavaScript 기능 지원 - JavaScript 언어(런타임 아님)는 ECMAScript 표준을 통해 표준화되었습니다. 모든 브라우저와 JavaScript 런타임이 모든 ECMAScript 표준의 모든 기능을 지원하는 것은 아닙니다(이 개요 참조). TypeScript는 많은 최신 ECMAScript 기능을 사용할 수 있게 하고 선택한 이전 ECMAScript 대상으로 변환합니다( --target 컴파일러 옵션 아래 의 컴파일 대상 목록 참조). 즉, 이전 브라우저 및 JavaScript 런타임과의 역호환성을 유지하면서 모듈, 람다 함수, 클래스, 확산 연산자 및 구조 분해와 같은 새로운 기능을 안전하게 사용할 수 있습니다.

  2. 고급 유형 시스템 - 유형 지원은 ECMAScript 표준의 일부가 아니며 JavaScript의 컴파일된 특성 대신 해석된 특성으로 인한 것이 아닙니다. TypeScript의 유형 시스템은 매우 풍부하며 인터페이스, 열거형, 하이브리드 유형, 제네릭, 공용체/교차 유형, 액세스 수정자 등을 포함합니다. TypeScript의 공식 웹사이트 는 이러한 기능에 대한 개요를 제공합니다. Typescript의 유형 시스템은 대부분의 다른 유형 언어와 동등하며 어떤 경우에는 더 강력합니다.

  3. 개발자 도구 지원 - TypeScript의 컴파일러는 증분 컴파일과 IDE 통합을 모두 지원하는 백그라운드 프로세스로 실행할 수 있으므로 보다 쉽게 탐색하고, 문제를 식별하고, 가능성을 검사하고, 코드베이스를 리팩터링할 수 있습니다.

TypeScript와 다른 JavaScript 타겟팅 언어의 관계

TypeScript는 JavaScript로 컴파일되는 다른 언어에 비해 독특한 철학을 가지고 있습니다. JavaScript 코드는 유효한 TypeScript 코드입니다. TypeScript는 JavaScript의 상위 집합입니다. .js 파일의 이름을 거의 .ts 파일로 바꾸고 TypeScript 사용을 시작할 수 있습니다(아래 "JavaScript 상호 운용성" 참조). TypeScript 파일은 읽을 수 있는 JavaScript로 컴파일되어 있으므로 다시 마이그레이션이 가능하고 컴파일된 TypeScript를 이해하는 것이 전혀 어렵지 않습니다. TypeScript는 약점을 개선하면서 JavaScript의 성공을 기반으로 합니다.

한편으로는 최신 ECMAScript 표준을 사용하여 Babel이 가장 널리 사용되는 이전 JavaScript 버전으로 컴파일하는 미래 보장 도구가 있습니다. 반면에 CoffeeScript, Clojure, Dart, Elm, Haxe, Scala.js 및 전체 호스트와 같이 JavaScript를 대상으로 하는 JavaScript와 완전히 다른 언어가 있습니다(이 목록 참조). 이러한 언어는 JavaScript의 미래가 이끄는 것보다 더 나을 수 있지만 미래가 보장될 만큼 충분한 채택을 찾지 못할 위험이 더 큽니다. 또한 이러한 언어 중 일부에 대한 경험이 풍부한 개발자를 찾는 데 더 어려움을 겪을 수도 있지만 종종 더 열성적인 개발자를 찾을 수 있습니다. JavaScript와의 상호 운용성은 JavaScript가 실제로 존재하는 것과는 거리가 멀기 때문에 조금 더 복잡할 수 있습니다.

TypeScript는 이 두 극단 사이에 있으므로 위험의 균형을 맞춥니다. TypeScript는 어떤 표준에서도 위험한 선택이 아닙니다. JavaScript는 완전히 다른 언어가 아니며 JavaScript 상호 운용성 지원이 우수하고 최근에 많이 채택되었기 때문에 JavaScript에 익숙하다면 익숙해지는 데 거의 노력이 필요하지 않습니다.

선택적으로 정적 입력 및 형식 유추

JavaScript는 동적으로 입력됩니다. 이것은 JavaScript가 런타임에 실제로 인스턴스화될 때까지 변수 유형을 알지 못한다는 것을 의미합니다. 이것은 또한 너무 늦을 수 있음을 의미합니다. TypeScript는 JavaScript에 유형 지원을 추가하고 JavaScript로 컴파일하는 동안 유형 오류를 포착합니다. 특정 유형의 일부 변수에 대한 잘못된 가정으로 인해 발생하는 버그는 카드를 올바르게 사용하면 완전히 근절될 수 있습니다(코드를 얼마나 엄격하게 입력하는지 또는 코드를 전혀 입력하는지 여부는 사용자에게 달려 있습니다).

TypeScript는 유형 추론을 사용하여 입력을 좀 더 쉽고 덜 명확하게 만듭니다. 예를 들어 TypeScript의 var x = "hello" var x : string = "hello" . 유형은 단순히 사용에서 유추됩니다. 유형을 명시적으로 입력하지 않더라도 런타임 오류가 발생할 수 있는 작업을 수행하지 않도록 하기 위해 여전히 존재합니다.

TypeScript는 기본적으로 선택적으로 입력됩니다. 예를 들어 function divideByTwo(x) { return x / 2 } 는 문자열로 호출하면 분명히 런타임 오류가 발생 하더라도 모든 종류의 매개변수로 호출할 수 있는 TypeScript의 유효한 함수입니다. JavaScript에 익숙한 것처럼. 이 방법은 유형이 명시적으로 할당되지 않고 유형을 유추할 수 없는 경우(divideByTwo 예제와 같이) TypeScript가 암시적으로 유형을 할당하기 때문에 작동 any . 이것은 DivideByTwo 함수의 유형 서명이 자동으로 function divideByTwo(x : any) : any 가 됨을 의미합니다. 이 동작을 허용하지 않는 컴파일러 플래그가 있습니다. --noImplicitAny . 이 플래그를 활성화하면 더 높은 수준의 안전성을 얻을 수 있지만 더 많은 입력을 해야 한다는 의미이기도 합니다.

유형에는 연관된 비용이 있습니다. 우선, 학습 곡선이 있고, 두 번째로 적절한 엄격한 타이핑을 사용하여 코드베이스를 설정하는 데도 시간이 조금 더 소요됩니다. 내 경험에 따르면 이러한 비용은 다른 사람과 공유하는 심각한 코드베이스에서 그만한 가치가 있습니다. Github의 프로그래밍 언어 및 코드 품질에 대한 대규모 연구에 따르면 "일반적으로 정적으로 유형이 지정된 언어는 동적 유형보다 결함이 덜 발생하고 동일한 관점에서 강력한 유형이 약한 유형보다 낫다"고 제안합니다.

이 동일한 논문에서 TypeScript가 JavaScript보다 오류가 덜 발생한다는 사실을 발견했다는 점은 흥미롭습니다.

계수가 양수인 경우 언어가 ceteris paribus, 더 많은 수의 결함 수정과 연관될 것으로 예상할 수 있습니다. 이러한 언어에는 C, C++, JavaScript , Objective-C, Php 및 Python이 포함됩니다. Clojure, Haskell, Ruby, Scala 및 TypeScript 언어는 모두 음수 계수를 가지고 있으며 이는 이러한 언어가 평균보다 결함 수정 커밋을 초래할 가능성이 적다는 것을 의미합니다.

향상된 IDE 지원

TypeScript를 사용한 개발 경험은 JavaScript에 비해 크게 개선되었습니다. IDE는 풍부한 유형 정보에 대해 TypeScript 컴파일러에서 실시간으로 알려줍니다. 이것은 몇 가지 주요 이점을 제공합니다. 예를 들어 TypeScript를 사용하면 전체 코드베이스에서 이름 바꾸기와 같은 리팩토링을 안전하게 수행할 수 있습니다. 코드 완성을 통해 라이브러리가 제공할 수 있는 모든 기능에 대한 인라인 도움말을 얻을 수 있습니다. 더 이상 기억하거나 온라인 참조에서 찾을 필요가 없습니다. 컴파일 오류는 코딩을 하는 동안 IDE에서 빨간색 구불구불한 선으로 직접 보고됩니다. 대체로 이것은 JavaScript로 작업하는 것과 비교하여 생산성이 크게 향상됩니다. 코딩에 더 많은 시간을 할애하고 디버깅에 더 적은 시간을 할애할 수 있습니다.

Visual Studio Code, WebStorm, Atom 및 Sublime과 같이 TypeScript를 훌륭하게 지원하는 광범위한 IDE가 있습니다.

엄격한 null 검사

형식의 런타임 오류는 정의되지 않거나 cannot read property 'x' of undefined undefined is not a function 매우 일반적으로 JavaScript 코드의 버그로 인해 발생합니다. 박스 가운데 타이프 이미 하나 (의 특성을 제외하고 타이프 컴파일러에 알려지지 않은 변수를 사용할 수 없기 때문에 이러한 종류의 오류 확률은 감소 일어나는 any 입력 변수). undefined 로 설정된 변수를 실수로 활용하는 것은 여전히 가능합니다. 그러나 TypeScript 2.0 버전을 사용하면 nullable이 아닌 유형을 사용하여 이러한 종류의 오류를 모두 제거할 수 있습니다. 이것은 다음과 같이 작동합니다:

엄격한 null 검사가 활성화된 경우( --strictNullChecks 컴파일러 플래그) TypeScript 컴파일러는 명시적으로 nullable 형식으로 선언하지 않는 한 undefined 예를 들어 let x : number = undefined 는 컴파일 오류가 발생합니다. undefined 는 숫자가 아니기 때문에 이것은 유형 이론에 완벽하게 맞습니다. x 를 숫자의 합 유형으로 undefined 하고 이를 수정하기 위해 number let x : number | undefined = undefined .

유형이 nullable인 것으로 알려지면 null 또는 undefined 값도 될 수 있는 유형이므로 TypeScript 컴파일러는 코드가 변수를 안전하게 사용할 수 있는지 여부를 제어 흐름 기반 유형 분석을 통해 결정할 수 있습니다. 다시 말해서, 예를 들어 undefined if 하면 TypeScript 컴파일러는 코드 제어 흐름의 해당 분기에 있는 유형이 더 이상 nullable이 아니므로 안전하게 사용할 수 있다고 추론합니다. 다음은 간단한 예입니다.

 let x: number | undefined; if (x !== undefined) x += 1; // this line will compile, because x is checked. x += 1; // this line will fail compilation, because x might be undefined.

빌드 중에 TypeScript Anders Hejlsberg의 2016년 회의 공동 디자이너는 이 기능에 대한 자세한 설명과 데모를 제공했습니다. 비디오 (44:30~56:30).

편집

TypeScript를 사용하려면 JavaScript 코드로 컴파일하는 빌드 프로세스가 필요합니다. 빌드 프로세스는 일반적으로 프로젝트의 크기에 따라 몇 초밖에 걸리지 않습니다. TypeScript 컴파일러는 모든 후속 변경 사항을 더 빠른 속도로 컴파일할 수 있도록 --watch

TypeScript 컴파일러는 생성된 .js 파일에 소스 맵 정보를 인라인하거나 별도의 .map 파일을 생성할 수 있습니다. 소스 맵 정보는 JavaScript의 행을 TypeScript에서 생성한 행과 연관시키기 위해 Chrome DevTools 및 기타 IDE와 같은 디버깅 유틸리티에서 사용할 수 있습니다. 이렇게 하면 런타임 중에 TypeScript 코드에서 직접 중단점을 설정하고 변수를 검사할 수 있습니다. 소스 맵 정보는 꽤 잘 작동합니다. TypeScript가 나오기 오래 전에도 있었지만 TypeScript 디버깅은 일반적으로 JavaScript를 직접 사용할 때만큼 좋지 않습니다. 예를 들어 this 키워드를 사용하십시오. 때문에의 변화된 의미로 this ES2015 이후 폐쇄 주위 키워드, this 실제로 변수라는 같은 런타임 중에 존재하는 수 _this (볼 이 대답을 ). 이것은 디버깅하는 동안 당신을 혼란스럽게 할 수 있지만 일반적으로 그것에 대해 알고 있거나 JavaScript 코드를 검사하면 문제가 되지 않습니다. Babel도 똑같은 종류의 문제를 겪고 있다는 점에 유의해야 합니다.

TypeScript 컴파일러가 할 수 있는 몇 가지 다른 트릭이 있습니다. 예를 들어 데코레이터를 기반으로 가로채는 코드 생성, 다른 모듈 시스템에 대한 모듈 로딩 코드 생성, JSX 구문 분석 등이 있습니다. 그러나 Typescript 컴파일러 외에 빌드 도구가 필요할 수 있습니다. 예를 들어 코드를 압축하려면 빌드 프로세스에 다른 도구를 추가해야 합니다.

Webpack , Gulp , Grunt 및 기타 거의 모든 JavaScript 빌드 도구에 사용할 수 있는 TypeScript 컴파일 플러그인이 있습니다. TypeScript 문서에는 이 모든 것을 다루는 빌드 도구와의 통합에 대한 섹션이 있습니다. 더 많은 빌드 시간 확인을 원할 경우 린터도 사용할 수 있습니다. 또한 Angular 2, React, Ember, SystemJS, Webpack, Gulp 등과 같은 많은 다른 기술과 함께 TypeScript를 시작할 수 있는 수많은 시드 프로젝트가 있습니다.

자바스크립트 상호 운용성

TypeScript는 JavaScript와 매우 밀접하게 관련되어 있기 때문에 뛰어난 상호 운용성 기능을 가지고 있지만 TypeScript에서 JavaScript 라이브러리를 사용하려면 몇 가지 추가 작업이 필요합니다. TypeScript 정의 는 TypeScript 컴파일러가 _.groupBy 또는 angular.copy 또는 $.fadeOut 과 같은 함수 호출이 실제로 잘못된 명령문이 아님을 이해하는 데 필요합니다. 이러한 기능에 대한 정의는 .d.ts 파일에 있습니다.

정의가 취할 수 있는 가장 간단한 형식은 식별자를 어떤 식으로든 사용할 수 있도록 하는 것입니다. 예를 들어 Lodash 를 사용할 때 한 줄 정의 파일 declare var _ : any _ 에서 원하는 함수를 호출할 수 있지만 물론 여전히 실수할 수도 있습니다. _.foobar() 는 합법적인 TypeScript 호출이지만, 물론 런타임에 잘못된 호출입니다. 적절한 유형 지원과 코드 완성을 원하면 정의 파일이 더 정확해야 합니다(예는 lodash 정의 참조).

고유한 유형 정의와 함께 미리 패키지된 Npm 모듈 은 TypeScript 컴파일러에서 자동으로 이해됩니다(문서 참조). 자체 정의를 포함하지 않는 거의 인기 있는 다른 JavaScript 라이브러리의 경우 누군가가 이미 다른 npm 모듈을 통해 유형 정의를 사용할 수 있도록 했습니다. 이 모듈은 "@types/" 접두사가 붙으며 확실히 Github 리포지토리에서 가져옵니다.

한 가지 주의 사항이 있습니다. 유형 정의는 런타임에 사용 중인 라이브러리 버전과 일치해야 합니다. 그렇지 않은 경우 TypeScript는 단순히 유형이 컴파일 타임에 런타임과 일치하지 않기 때문에 함수를 호출하거나 존재하는 변수를 역참조하거나 함수를 호출하거나 존재하지 않는 변수를 역참조하는 것을 허용하지 않을 수 있습니다. . 따라서 사용 중인 라이브러리의 올바른 버전에 대한 올바른 버전의 유형 정의를 로드해야 합니다.

솔직히 말해서 여기에는 약간의 번거로움이 있으며 TypeScript를 선택하지 않는 이유 중 하나일 수 있습니다. 대신 유형 정의를 전혀 얻을 필요가 없는 Babel과 같은 것을 선택하십시오. 반면에 수행 중인 작업을 알면 정의 파일이 잘못되거나 누락되어 발생하는 모든 종류의 문제를 쉽게 극복할 수 있습니다.

JavaScript에서 TypeScript로 변환

모든 .js .ts 파일로 이름을 바꿀 수 있고 TypeScript 컴파일러를 통해 실행되어 구문적으로 동일한 JavaScript 코드를 출력으로 얻을 수 있습니다(처음에 구문적으로 올바른 경우). TypeScript 컴파일러에 컴파일 오류가 발생하더라도 여전히 .js 파일을 생성합니다. --allowJs 플래그를 .js 파일을 입력으로 받아들일 수도 있습니다. 이를 통해 TypeScript를 바로 시작할 수 있습니다. 불행히도 컴파일 오류는 초기에 발생할 가능성이 높습니다. 이것은 다른 컴파일러에 익숙할 수 있는 것처럼 표시 중지 오류가 아님을 기억해야 합니다.

JavaScript 프로젝트를 TypeScript 프로젝트로 변환할 때 처음에 발생하는 컴파일 오류는 TypeScript의 특성상 피할 수 없습니다. TypeScript는 모든 코드의 유효성을 검사하므로 사용되는 모든 함수와 변수에 대해 알아야 합니다. 따라서 모든 유형에 대한 유형 정의가 있어야 합니다. 그렇지 않으면 컴파일 오류가 발생할 수 있습니다. 위의 장에서 언급했듯이 거의 모든 JavaScript 프레임워크에 대해 .d.ts 파일이 있습니다. 이 파일은 확실히 유형 이 지정된 패키지를 설치하여 쉽게 얻을 수 있습니다. 그러나 TypeScript 정의를 사용할 수 없는 모호한 라이브러리를 사용했거나 일부 JavaScript 프리미티브를 폴리필했을 수 있습니다. 이 경우 컴파일 오류가 사라지려면 이러한 비트에 대한 유형 정의를 제공해야 합니다. .d.ts 파일을 생성하고 tsconfig.json의 files 배열에 포함하기만 하면 됩니다. any 유형으로 알지 못하는 비트를 선언합니다. 모든 오류를 제거하면 필요에 따라 해당 부분에 점차적으로 입력할 수 있습니다.

TypeScript를 빌드 파이프라인으로 가져오려면 빌드 파이프라인을 (재)구성하는 작업도 필요합니다. 컴파일 장에서 언급했듯이 거기에는 많은 좋은 리소스가 있으며 작업하려는 도구의 조합을 사용하는 시드 프로젝트를 찾는 것이 좋습니다.

가장 큰 장애물은 학습 곡선입니다. 처음에는 작은 프로젝트를 수행하는 것이 좋습니다. 어떻게 작동하는지, 어떻게 빌드하는지, 어떤 파일을 사용하는지, 어떻게 구성되는지, IDE에서 어떻게 작동하는지, 어떻게 구성되는지, 어떤 도구를 사용하는지 등을 보십시오. 당신이하고있는 일. 예를 들어 600k 라인을 72시간 안에 typescript로 변환하는 방법에 대한 이 블로그를 읽으십시오. 점프하기 전에 언어를 잘 이해하고 있는지 확인하십시오.

양자

TypeScript는 오픈 소스(Apache 2 라이선스, GitHub 참조)이며 Microsoft에서 지원합니다. C#의 수석 설계자인 Anders Hejlsberg 가 이 프로젝트를 주도하고 있습니다. 매우 활발한 프로젝트입니다. TypeScript 팀은 지난 몇 년 동안 많은 새로운 기능을 출시했으며 여전히 많은 훌륭한 기능이 제공될 예정입니다( 로드맵 참조).

채택 및 인기에 대한 몇 가지 사실:


Lodewijk Bogaards

TypeScript는 CSS에 대해 less 또는 sass가 수행하는 것과 유사한 작업을 수행합니다. 그것들은 그것의 상위 집합입니다. 즉, 작성하는 모든 JS 코드가 유효한 TypeScript 코드입니다. 또한 언어에 추가되는 다른 기능을 사용할 수 있으며 트랜스파일된 코드는 유효한 js가 됩니다. 결과 코드를 원하는 JS 버전을 설정할 수도 있습니다.

현재 TypeScript는 ES2015의 상위 집합이므로 새로운 js 기능을 배우고 프로젝트에 필요한 표준으로 변환하는 데 좋은 선택일 수 있습니다.


lebobbi

" TypeScript Fundamentals " -- Dan WahlinJohn Papa 의 Pluralsight 비디오 코스는 TypeScript 소개인 TypeScript 1.8을 반영하도록 현재(2016년 3월 25일) 업데이트되었습니다.

Intellisense의 멋진 가능성 외에도 정말 좋은 기능은 클래스 , 인터페이스 , 모듈 , AMD 구현의 용이성, IE와 함께 호출할 때 Visual Studio Typescript 디버거를 사용할 수 있는 가능성입니다.

요약 : Typescript를 의도한 대로 사용하면 JavaScript 프로그래밍을 보다 안정적이고 쉽게 만들 수 있습니다. 전체 SDLC에 비해 JavaScript 프로그래머의 생산성을 크게 높일 수 있습니다.


Dimitre Novatchev

모든 브라우저가 지원하고 사전 컴파일된 Ecma 스크립트 5(ES5). ES6/ES2015 및 ES/2016은 올해 많은 변경 사항과 함께 출시되었으므로 이러한 변경 사항을 표시하려면 TypeScript에 주의해야 할 부분이 있습니다.

• TypeScript는 유형 -> 각 속성 및 메소드의 데이터 유형을 정의해야 함을 의미합니다. C#을 안다면 Typescript는 이해하기 쉽습니다.

• TypeScript의 큰 장점은 프로덕션으로 이동하기 전에 Type 관련 문제를 조기에 식별할 수 있다는 것입니다. 이렇게 하면 형식 불일치가 있는 경우 단위 테스트가 실패할 수 있습니다.


Mayank Jain

출처 : http:www.stackoverflow.com/questions/12694530/what-is-typescript-and-why-would-i-use-it-in-place-of-javascript

반응형