TypeScript 3.8 добавя внос и износ само за тип

TypeScript 3.8, нова версия на набрания от Microsoft набор от JavaScript, вече се предлага като производствена версия. Последната надстройка на TypeScript набляга на импортирането и експортирането само на тип и спазването на стандартите ECMAScript.

Изданието добавя нов синтаксис за внос и износ само за тип, с намерението да даде на потребителите по-фин контрол върху вноса и елизията. В import typeсинтаксис вноса само декларации, които се използват за типа анотации и декларации и винаги получава напълно изтрити. В  export type синтаксиса предоставя само за износ, за да бъдат използвани за контексти тип и се изтриват от пишеща машина изход.

TypeScript използва синтаксиса за импортиране на JavaScript, за да активира референтни типове. Макар и удобна, възможността работи само заради функцията за импортиране на елизия, която пропуска импортирането на TypeScript, когато TypeScript извежда JavaScript файлове. Обаче вносът е бил недостатъчен и проблематичен.

Във връзка с  import type, пишеща машина 3.8 добавя и компилатор флаг, за да контролирате какво се случва с вноса, които няма да се използват по време на изпълнение:  importsNotUsedAsValues.

По отношение на стандарта ECMAScript за JavaScript, TypeScript 3.8 добавя поддръжка за частни полета ECMAScript, което е част от предложението за деклариране на полета за клас за JavaScript. Публичните и частните полета ще бъдат интегрирани в едно, ортогонално цяло, съгласно това предложение.

Другите подобрения, обещани в TypeScript 3.8, включват:

  • "Бърза и свободна" инкрементална проверка на типа, включваща опция за компилатор assumeChangesOnlyAffectDirectDependencies,. Тази опция може да намали времето за изграждане на определени файлове, тъй като TypeScript ще провери / възстанови само файлове, които са се променили, както и файлове, които директно ги импортират. Препоръчва се за големи кодови бази, където разработчиците са готови да отложат пълните грешки на проекта до по-късно време.
  • Внедряване на експортирането като * nsсинтаксис, осигуряване на една входна точка за излагане на всички членове на друг модул като един член.
  • Най-високо ниво await, предстояща функция ECMAScript за премахване на ограниченията за използване на awaitизраз в горната част на файл при определени условия.
  • JavaScript файловете се поддържат в TypeScript 3.8 чрез включване на allowJsфлага; проверката на типа на тези файлове се поддържа чрез checkjsопцията или чрез добавяне на коментар // @ ts-check в горната част на .js файловете. Новите JSDoc тагове се използват за свойства, тъй като JavaScript файловете нямат специален синтаксис за проверка на типа.
  • А watchOptionsполе в tsconfig.jsonи jsconfig.jsonпозволява на потребителите да разказват съставител / езиковата служба кой файл гледане на стратегии, за да използвате, за да следите на файлове и директории.
  • Рефакторинг за конвертиране на конкатенации на низове.
  • По-строги проверки за присвояване на обединения с подписи на индекса, пробивна промяна.
  • В друг чупене на климата, objectв JSDoc вече не е anyпод noImplicitAny.

Можете да инсталирате общата версия на TypeScript 3.8 чрез NuGet или чрез NPM:

npm install typescript