Moja codzienna praca to programista klienta korzystający z AngularJS. Oceniamy, czy chcemy korzystać z TypeScript. Przeprowadziłem badania dotyczące maszynopisu i prawie każdy pakiet JavaScript, którego potrzebuję, musi mieć pliki typu definicji. Przekonałem się, że nie jest to zbyt wygodne, szczególnie jeśli chciałbym spróbować czegoś nowego i nie mają na to definicji. To naprawdę frustrujące. (Nawet obecna definicja jQuery sprawia mi pewne problemy, jeśli chcę używać maszynopisu 1.5 w wersji beta). Zacząłem patrzeć na ES6 i wygląda podobnie do TypeScript. Czy zamiast tego powinienem używać ES6? Słyszałem też, że Angular 2 będzie miał pełną obsługę TypeScript, czy to jeden z powodów, dla których powinienem się nim posługiwać?
angularjs
typescript
ecmascript-6
cjskywalker
źródło
źródło
declare var MyNewLibraryName: any;
a następnie używać jej tak, jak chcesz, bez narzekań kompilatora.Odpowiedzi:
Używam Typescript w moim bieżącym projekcie kątowym od około półtora roku i chociaż od czasu do czasu pojawia się kilka problemów z definicjami, projekt DefinitelyTyped wykonuje niesamowitą pracę nadążaniem za najnowszymi wersjami najpopularniejszych bibliotek.
Powiedziawszy, że istnieje wyraźna krzywa uczenia się przy przechodzeniu z waniliowego JavaScript na TS i powinieneś wziąć pod uwagę zdolność ciebie i swojego zespołu do dokonania tego przejścia. Ponadto, jeśli zamierzasz używać kątowej 1.x większość przykładów, które znajdziesz w Internecie, będzie wymagała przetłumaczenia ich z JS na TS i ogólnie nie ma zbyt wielu zasobów na temat używania TS i kątowej 1.x teraz .
Jeśli planujesz używać kątowej 2, istnieje wiele przykładów używania TS i myślę, że zespół będzie nadal dostarczał większość dokumentacji w TS, ale na pewno nie musisz używać TS, aby używać kątowej 2.
ES6 ma kilka fajnych funkcji i osobiście planuję się z nim lepiej zapoznać, ale w tym momencie nie uważałbym go za język gotowy do produkcji. Głównie z powodu braku wsparcia ze strony obecnych przeglądarek. Oczywiście możesz napisać swój kod w ES6 i użyć transpilatora, aby dostać go do ES5, co wydaje się być obecnie popularną rzeczą.
Ogólnie rzecz biorąc, myślę, że odpowiedź sprowadziłaby się do tego, co Ty i Twój zespół czujecie komfortowo. Osobiście uważam, że zarówno TS, jak i ES6 będą miały dobre wsparcie i długą przyszłość, wolę jednak TS, ponieważ masz tendencję do szybszego uzyskiwania funkcji językowych, a teraz wsparcie narzędzi (moim zdaniem) jest nieco lepsze.
źródło
Drzewo decyzyjne między ES5, ES6 a TypeScript
Więcej szczegółów
ES5 to JavaScript, który znasz i którego używasz dzisiaj w przeglądarce, jest tym, czym jest i nie wymaga kroku kompilacji, aby przekształcić go w coś, co będzie działać w dzisiejszych przeglądarkach
ES6 (zwany także ES2015 ) to kolejna wersja JavaScript, ale nie działa w dzisiejszych przeglądarkach. Istnieje wiele transpilatorów, które eksportują ES5 do działania w przeglądarkach. Jest to wciąż język dynamiczny (czytaj: bez typu).
TypeScript zapewnia opcjonalny system pisania, jednocześnie pobierając funkcje z przyszłych wersji JavaScript (ES6 i ES7).
Uwaga: wiele dostępnych transpilatorów (tj. Babel, TypeScript) pozwoli ci na korzystanie z funkcji przyszłych wersji JavaScript i eksportowanie kodu, który nadal będzie działał w dzisiejszych przeglądarkach.
źródło