My angular seed въпроси


3

Пробвах да си направя angular seed и се получи някакво мазало но уж работи. Ще се радвам на забележки и хейт. Главната ми цел беше да отделя ts файловете от генерираните файлове.

https://github.com/makkasi/my_angular_seed

Не разбирам доста неща, но като начало:

За какво например са различните видове types:
"@types/node": "..."
"
@types/
core-js": "..."
"@types/jasmine": "..."

Колко е зле ако проекта се настрои за ES6?

VS code често ми изкарва :
The workspace folder contains TypeScript version 2.1.4. Do you want to use this version instead  ...
И ми дава избор да избера между Workspace версията (предполагам че това е глобално инсталираната версия) и Bundled версията (която предполагам е версията на vs code). Как да сетна версията на vs code да е версията която съм инсталирал глобално?

Поздрави





Отговори



6

Здравей,

@types пакетите предоставят TypeScript definitions за съответната библиотека. Дават интелисенс и предупреждения и компилационни грешки, когато API-то на съответната библиотека не се използва, както трябва.

По втория въпрос - ако имаш предвид target в tsconfig.json, тоест до коя версия на ecmascript да се превежда написания typescript код (es5, es6 итн), обикновено се ползва es5 просто, защото все още се поддържа в много по-голяма степен от браузърите.

По последния въпрос - в package.json може да сложиш коя версия на typescript да се ползва в проекта (в devDependencies секцията).


от topalkata (6442 точки)


3

Да. Изглежда че когато глобално инсталираната версия съвпада с тази в devDependencies нещата сработват. Благодаря. Бих ти дал палец но нямам рейтинг.
Иначе какво ще рече дават definitions за съответната библиотека. За какво отговаря по точно всяка от тях. Например за https://www.npmjs.com/package/@types/node This package contains type definitions for Node.js v6.x (http://nodejs.org/).
Обаче ние ползваме typescript. Докато пишем ts файлове не ни трябва node типове. Това не мога да го схвана.

Или пък https://www.npmjs.com/package/@types/core-js This package contains type definitions for core-js (https://github.com/zloirock/core-js/).
Отварям гит линка и там другото което се казва е:

Modular standard library for JavaScript. Includes polyfills for ECMAScript 5, ECMAScript 6: promises, symbols, collections, iterators,...

Тук вече мога да го разбера чат пат. Инсъртва необходимите си неща за es5, es6 и така нататък. Pоlifills не знам какво е. За първи път го чувам в този курс.


от makkasi (142 точки)

3

Ами именно това дават - ако искаш да пишеш на TypeScript с типизация, описание на кой метод какво трябва да бъде подадено и т.н., но и да ползваш библиотеки, писани на JavaScript, непредлагащи подобни "екстри", type definitions за съответната библиотека съдържат необходимата информация, така че да можеш да ги ползваш в тайпскрипт код с интелисенс, подсказки кое от какъв тип трябва да е и прочие.

Polyfill е парче код, което предоставя някаква функционалност, която кодът очаква, но даден браузър не поддържа. Например, за методи и други, които не се поддържат в по-стари IE браузъри, слагаш в началото на кода един полифил, който подсигурява, че дори браузърът да не поддържа някой използван метод, няма да хвърли грешка, че да кажем Array няма метод find(), a ще ползва този, който му дава полифилът:

https://remysharp.com/2010/10/08/what-is-a-polyfill


от topalkata (6442 точки)