우리는 JavaScript, Flash, Silverlight, HTML5를 모두 소유했습니다.
그렇다면 TypeScript의 동기는 무엇입니까? 어떤 문제가 해결 될 것이며 TypeScript의 어떤 개선점이 있습니까?
우리는 JavaScript, Flash, Silverlight, HTML5를 모두 소유했습니다.
그렇다면 TypeScript의 동기는 무엇입니까? 어떤 문제가 해결 될 것이며 TypeScript의 어떤 개선점이 있습니까?
답변:
JavaScript로 컴파일되는 정적으로 유형이 지정된 클래스 기반 언어 인 것 같습니다. 좋은 생각이며 다른 사람들도 가지고 있습니다.
정적 형식의 클래스 기반 언어와 JavaScript로 개발 된 모든 사람에게 이점이 분명해야합니다.
우리가 보는 바와 같이, 기본 아이디어는 매우 좋은 아이디어입니다. 나는 언어에 대한 경험이 없기 때문에 언어 자체에 대해 아무 말도 할 수 없습니다. 그러나 Smart (위의 링크)를 사용하여 웹 개발에 매우 강력하고 유용한 도구라는 것을 알았습니다.
내가 볼 수있는 한 TypeScript를 사용해야하는 몇 가지 이유가 있습니다. Mason Wheeler가 말했듯이, 무엇보다도 컴파일러 입니다. 또는 오히려 컴파일러가 수행하는 모든 검사. JSLint 및 기타 도구는 유용하지만 일부 문제를 놓치고 때로는 잘못되었습니다. 저는이 "혁신"을 환영합니다.
그런 다음 실제 유형 시스템 이있어 가독성을 향상시키고 올바른 유형을 시행합니다. 결국 이것은 개발 속도를 높입니다.
저에게 가장 큰 장점 중 하나는 툴링 지원 입니다. 그것은 아마도 타입 시스템의 부작용이지만 그럼에도 불구하고 훌륭합니다. 현재 JavaScript 툴링 지원이 유용하지 않기 때문에 실제로 필요합니다.
TypeScript는 JavaScript 를 확장 하려고 시도합니다 . 컴파일러는 정말 멋진 JavaScript를 생성합니다. 이 외에도 ECMAScript 6 제안을 따릅니다 . (예를 들어, 화살표 함수 구문 , 매개 변수 기본값 , 모듈 등).
그것은 만드는 모듈과 클래스를 사용하여 작업 쉽습니다. JavaScript로 클래스와 모듈을 다루는 것은 실제로 가능하고 꽤 일반적이지만, 약간의 상용구 코드가 필요합니다. 그리고 읽기가 쉽지 않습니다. TypeScript를 사용하면 Java 또는 C #에서와 같이 클래스, 인터페이스 및 모듈 문을 작성할 수 있으므로 요청하면 훨씬 쉽습니다.
그러나 결국 그것은 여전히 JavaScript 입니다. 새로운 언어 나 구문을 배울 필요가 없습니다. 그것이 추가하는 유일한 것은 옵션 유형 시스템입니다 (위대하고 기한이 지났습니다).
그런 다음 "definitions library" 가 있습니다. 즉, 모든 JavaScript 라이브러리 를 다시 쓰거나 패치하지 않고도 사용할 수 있습니다. 그러나 지금은 추가 유형 시스템이 있습니다.
나는 그것을 시도 할 것입니다!
마지막으로 HTML5와 TypeScript 사이에는 경쟁이 없습니다. 그러나 그것은 또 다른 이야기입니다.
우리는 JavaScript, Flash, Silverlight, HTML5를 모두 소유했습니다.
이것은 단순히 사실 이 아닙니다 . HTML5는 멀티미디어를 소유하지 않으며 멀티미디어 사용을 단순화하는 새로운 마크 업을 도입하고 HTML을 렌더링하는 동안 하드웨어 가속을 사용하는 것과 같은 새로운 시대 브라우저의 장점을 탐구합니다.
그렇다면 TypeScript의 동기는 무엇입니까?
동기 부여는 사용 이유에 의해 유발 될 수 있습니다. 정적 검사, 기호 기반 탐색, 명령문 완성 및 코드 리팩토링과 같은 TypeScript의 모든 기능은 고려해야 할 매우 강력한 이유입니다.
또한 강력한 구성 요소를 작성하는 데 도움이되는 클래스, 모듈 및 인터페이스를 제공합니다. 이러한 기능은 개발시 신뢰도가 높은 응용 프로그램 개발을 위해 제공되지만 간단한 JavaScript로 컴파일됩니다.
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/
나는 공유하고 신뢰할 수없는 쓰레기 (자바 스크립트)를 실질적인 프로젝트에 실제로 사용할 수있는 독점적 인 언어로 바꾸려는 노력이라고 생각합니다.
비슷한 목표를 가지고 있지만 자바 스크립트를 언어의 일부가 아닌 방식으로 깔끔하게 접근 한 GWT와 비교해야한다. Java 애플릿 또는 Flash를 사용하면 브라우저와 독립적으로 완전한 런타임 환경을 정의하는 매우 깔끔한 접근 방식을 취합니다.
귀하의 의견은 다양 할 수 있지만 기본적으로 (가변, 일관되지 않은) 자바 스크립트 구현 및 DOM 모델을 제공하는 브라우저에 의존하는 한 운명에 처한 것으로 생각됩니다.