TypeScript의 동기는 무엇입니까?


21

우리는 JavaScript, Flash, Silverlight, HTML5를 모두 소유했습니다.

그렇다면 TypeScript의 동기는 무엇입니까? 어떤 문제가 해결 될 것이며 TypeScript의 어떤 개선점이 있습니까?

http://www.typescriptlang.org/


15
왜 HTML5가 "소유"JavaScript라고 생각하십니까?
Bergi

1
공통점 => 기술과 개발을 찾기 위해 모두가 어떤 것에 동의해야한다는 의미에서 정체되었다.
Gero

3
다트에 대해 언급 한 이유는 무엇입니까?
Robert Harvey

Dart, TypeScript 또는 Coffeescript는 JavaScript로 컴파일 할 수 있습니다. 그리고 다트도 아주 새롭습니다.
Gero

니콜라스 C. Zakas에 의해이 문서 "타이프 라이터에 대한 생각"에서보세요 : nczonline.net/blog/2012/10/04/thoughts-on-typescript
Czarek Tomczak

답변:


35

JavaScript로 컴파일되는 정적으로 유형이 지정된 클래스 기반 언어 인 것 같습니다. 좋은 생각이며 다른 사람들도 가지고 있습니다.

정적 형식의 클래스 기반 언어와 JavaScript로 개발 된 모든 사람에게 이점이 분명해야합니다.

  • 무엇보다도 컴파일러입니다. 배포하기 전에 오타 나 부주의로 인해 발생하는 명백한 정확성 문제를 확인할 수 있다는 것은 대부분의 개발자가 웹 개발을 수행해야 할 때까지 당연한 것으로 여겨지며 갑자기 발 아래에서 빠져 나옵니다. 브라우저는 적절한 테스트 및 디버깅 기능을 희생하면서 브라우징 환경을 즐겁게 만들도록 설계되었으며 표준 솔루션 인 JSLint는 명백한 정확성 문제를 놓치고 스타일 검사기 불만 사항을 혼합하여 실제 컴파일러를 대체하지 않습니다. 보고서와 함께. 실제 컴파일러를 사용하는 것은 큰 발전입니다.
  • 그리고 비슷한 라인을 따라 타입 시스템 입니다. 타입 시스템은 코드를보다 쉽게 ​​읽을 수있게하고 (예를 들어, 함수에 전달되는 내용과 수행 할 수있는 작업, 예를 들어 매개 변수 목록을 확인하는 것만으로) 컴파일시 어느 정도의 정확성을 강화함으로써 코드를 향상시킵니다. 시각. (특정 객체 유형을 기대하는 경우 정수를 전달하면 오류가 발생합니다. JavaScript를 사용하면이를 수행 한 다음 실행하려고 할 때 폭파됩니다. 유형 시스템이있는 컴파일러는이를 포착하여 오류를보고합니다. 당신.)

우리가 보는 바와 같이, 기본 아이디어는 매우 좋은 아이디어입니다. 나는 언어에 대한 경험이 없기 때문에 언어 자체에 대해 아무 말도 할 수 없습니다. 그러나 Smart (위의 링크)를 사용하여 웹 개발에 매우 ​​강력하고 유용한 도구라는 것을 알았습니다.


7
그것은 컴파일되는 새로운 언어보다 JavaScript의 수퍼 셋과 비슷합니다.
Daniel Little

2
예, 강력하게 입력하면 프로그래머가 쉬워집니다.
Edwin Yip

13
TypeScript는 정적 인 유형이며 강력한 유형이 아닙니다.
Fenton

15

내가 볼 수있는 한 TypeScript를 사용해야하는 몇 가지 이유가 있습니다. Mason Wheeler가 말했듯이, 무엇보다도 컴파일러 입니다. 또는 오히려 컴파일러가 수행하는 모든 검사. JSLint 및 기타 도구는 유용하지만 일부 문제를 놓치고 때로는 잘못되었습니다. 저는이 "혁신"을 환영합니다.

그런 다음 실제 유형 시스템 이있어 가독성을 향상시키고 올바른 유형을 시행합니다. 결국 이것은 개발 속도를 높입니다.

저에게 가장 큰 장점 중 하나는 툴링 지원 입니다. 그것은 아마도 타입 시스템의 부작용이지만 그럼에도 불구하고 훌륭합니다. 현재 JavaScript 툴링 지원이 유용하지 않기 때문에 실제로 필요합니다.

TypeScript는 JavaScript확장 하려고 시도합니다 . 컴파일러는 정말 멋진 JavaScript를 생성합니다. 이 외에도 ECMAScript 6 제안을 따릅니다 . (예를 들어, 화살표 함수 구문 , 매개 변수 기본값 , 모듈 등).

그것은 만드는 모듈과 클래스를 사용하여 작업 쉽습니다. JavaScript로 클래스와 모듈을 다루는 것은 실제로 가능하고 꽤 일반적이지만, 약간의 상용구 코드가 필요합니다. 그리고 읽기가 쉽지 않습니다. TypeScript를 사용하면 Java 또는 C #에서와 같이 클래스, 인터페이스 및 모듈 문을 작성할 수 있으므로 요청하면 훨씬 쉽습니다.

그러나 결국 그것은 여전히 JavaScript 입니다. 새로운 언어 나 구문을 배울 필요가 없습니다. 그것이 추가하는 유일한 것은 옵션 유형 시스템입니다 (위대하고 기한이 지났습니다).

그런 다음 "definitions library" 가 있습니다. 즉, 모든 JavaScript 라이브러리 를 다시 쓰거나 패치하지 않고도 사용할 수 있습니다. 그러나 지금은 추가 유형 시스템이 있습니다.

나는 그것을 시도 할 것입니다!

마지막으로 HTML5와 TypeScript 사이에는 경쟁이 없습니다. 그러나 그것은 또 다른 이야기입니다.


5

우리는 JavaScript, Flash, Silverlight, HTML5를 모두 소유했습니다.

이것은 단순히 사실아닙니다 . HTML5는 멀티미디어를 소유하지 않으며 멀티미디어 사용을 단순화하는 새로운 마크 업을 도입하고 HTML을 렌더링하는 동안 하드웨어 가속을 사용하는 것과 같은 새로운 시대 브라우저의 장점을 탐구합니다.

그렇다면 TypeScript의 동기는 무엇입니까?

동기 부여는 사용 이유에 의해 유발 될 수 있습니다. 정적 검사, 기호 기반 탐색, 명령문 완성 및 코드 리팩토링과 같은 TypeScript의 모든 기능은 고려해야 할 매우 강력한 이유입니다.

또한 강력한 구성 요소를 작성하는 데 도움이되는 클래스, 모듈 및 인터페이스를 제공합니다. 이러한 기능은 개발시 신뢰도가 높은 응용 프로그램 개발을 위해 제공되지만 간단한 JavaScript로 컴파일됩니다.


HTML 5는 하드웨어 가속의 전제 조건이 아닙니다. 대부분의 브라우저는 HTML5 마크 업을 사용하거나 사용하지 않고이 작업을 수행합니다.
Neil N

내 진술은 하드웨어 가속이 브라우저가 html5를 제공하지 않는 기능이라는 것을 나타냅니다.
EL Yusubov

3

JS로 컴파일되는 완전히 새로운 언어가 아닌 자바 스크립트 개발을 관리하는 도구로 취급 될 수 있습니다. Dart와 같은 서버 측 개발 언어가되고 싶지 않으며 CoffeeScript와 같은 다른 구문이 없습니다. 인기있는 언어 (및 핵심 라이브러리)를 사용하고 GWT 또는 스크립트 #와 같은 JS로 컴파일하고 싶지 않았습니다. TypeScript는 JS의 다음 버전에서 제안 된 것과 동일한 "클래스"구문을 따릅니다.

나는 대부분의 웹 개발이 오늘날 클라이언트 측에서만 실제 자바 스크립트를 사용하여 수행된다고 생각합니다. Dart, GWT와 같은 언어 또는 프레임 워크는 이에 적합하지 않습니다. 커피 스크립트를 사용하면 새로운 구문이 나타납니다. 그리고 당신은 coffeescript와 JS를 모두 이해해야합니다. TypeScript는 JS에 통합 된 몇 가지 추가 유형 지향 기능을 JS에 통합하여 개발자에게 유형별 오류 (JS 오류의 큰 부분)를 저장하고 개발자 도구에 대한 개발자 의도에 대한 자세한 정보를 제공합니다.

이 접근법은 새로운 것이 아닙니다. "정적 입력"섹션으로 이동

이 기사는 귀하의 쿼리-http : //www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/


0

나는 공유하고 신뢰할 수없는 쓰레기 (자바 스크립트)를 실질적인 프로젝트에 실제로 사용할 수있는 독점적 인 언어로 바꾸려는 노력이라고 생각합니다.

비슷한 목표를 가지고 있지만 자바 스크립트를 언어의 일부가 아닌 방식으로 깔끔하게 접근 한 GWT와 비교해야한다. Java 애플릿 또는 Flash를 사용하면 브라우저와 독립적으로 완전한 런타임 환경을 정의하는 매우 깔끔한 접근 방식을 취합니다.

귀하의 의견은 다양 할 수 있지만 기본적으로 (가변, 일관되지 않은) 자바 스크립트 구현 및 DOM 모델을 제공하는 브라우저에 의존하는 한 운명에 처한 것으로 생각됩니다.


5
첫째, 독점이 아니며 이미 공개 표준입니다. 둘째, GWT / ScriptSharp보다 Dart와 비슷합니다 (비슷하지만).
Daniel Little

1
아마도 이길 방법이 없을 것입니다 – 마이크로 소프트가 그것을 통제하지 않으면 많은 변형을 가진 또 다른 나쁜 언어가 될 것이며, 여전히 자바 스크립트와 DOM의 변화하는 모래에 의존하고 있습니다
ddyer

1
현재 널리 사용되는 HTML5 / JS 스택과는 관련이 거의없는 Flash 및 / 또는 Java 기술에 대해 약간 쓰라린 사람처럼 들립니다.
Graham

3
-1 그래서 당신은 JavaScript를 좋아하지 않습니다. 기본적으로 당신의 진술입니다.
Bruno Schäpper

2
공평하고 타이프 스크립트의 기초이기 때문에 타이프 스크립트가 나쁜 기초를 기반으로한다고 생각합니다. 반드시 치명적이지는 않지만 상처의 세계입니다.
ddyer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.