+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Microsoft випустила оновлення TypeScript 3.2

Microsoft випустила оновлення TypeScript 3.2

Microsoft випустила оновлення TypeScript під номером 3.2. Ця мова програмування розширює можливості JavaScript за частиною статичної перевірки типів даних. Оновлення також включає в себе новітні функції JavaScript зі стандарту ECMAScript.

Строга перевірка методів

В TypeScript 3.2 вводиться більш строга перевірка для bindcall і apply. Ці методи дозволяють, зокрема, викликати функції з іншим значенням, а також функції з масивом їх аргументів. Для запуску суворішої перевірки використовується прапор strictBindCallApply.

Це дозволяє підвищити безпеку методів, оскільки вони працюють з великим числом аргументів, що потенційно може призвести до уразливості, якщо підмінити один або кілька аргументів у масиві.

Розширення об'єктів на узагальнені типи

У JavaScript підтримується зручний спосіб копіювання властивостей існуючого об'єкта в новий. Найбільшого поширення така схема набула у пересічених типах Foo і Bar, так званих метазмінних, а також — у функції Object.assign.

У TypeScript раніше цей спосіб не працював для всіх узагальнених типів (так званих дженериків). Версія 3.2 отримала підтримку цієї можливості.

Оператор Rest для узагальнених типів

Якщо в попередньому випадку йшлося про копіювання всіх властивостей того чи іншого об'єкта, то оператор Rest для узагальнених типів дозволяє створювати новий об'єкт, який не успадковує деяких властивостей оригінального.

let { x, y, z, ...rest } = obj;

Спадкування конфігурації через node_modules

Довгий час TypeScript підтримував розширені файли tsconfig.json з використанням поля extends. Ця функція корисна, щоб уникнути дублювання конфігурації, проте це добре працює тільки у випадку, якщо кілька проектів знаходяться в одному репозиторії і посилаються на загальний файл tsconfig.

Але в деяких випадках проекти пишуться і публікуються як повністю незалежні пакети. Ці проекти не мають спільного файлу, на який вони можуть посилатися, тому в якості обхідного шляху користувачі можуть створити окремий пакет і посилання на нього.

TypeScript 3.2 тепер дозволяє завантажувати tsconfig.json із папки node_modules. При використанні порожнього шляху для поля extends в tsconfig.json TypeScript завантажить дані з node_modules. Подібне буде потрібно в великих проектах з великою кількістю розподілених залежностей.

Також тепер компілятор TypeScript, підтримує новий прапор з ім'ям –showConfig. Цей прапор дозволяє виводити на екран вміст tsconfig.json, щоб знайти помилку або внести корективи.

BigInts

Новий простий тип bigint (всі літери малі) дозволяє використовувати скільки завгодно великі числа в TypeScript. Це нововведення з ECMAScript і працює тільки в рамках ES.Next. Цей термін є динамічним і автоматично посилається на нову версію ECMAScript, в якій при кожному оновленні додаються функції.

Використання типів number і bigint в однієї й тієї ж арифметичної операції неприпустимо. Необхідно явно перетворювати значення в bigint. Для цього можна скористатися функцією BigInt() або вписати літерал n наприкінці числа:

let foo: bigint = BigInt(100); // функція BigInt
let bar: bigint = 100n; // літерал BigInt

Також зазначимо, що bigint підтримується тільки в Node 11 і останніх версіях браузера Chrome.

Оголошення Object.defineProperty у JavaScript

При записі в файли JavaScript за допомогою allowJs TypeScript 3.2 тепер розпізнає оголошення, що використовують Object.defineProperty. Це дозволяє проводити більш ретельну і строгу перевірку типів при включенні відповідної можливості у файлах JavaScript шляхом активації allowJs або додавання коментаря // @ts-checkв початок файлу.

Редактори, що підтримуються

На даний момент підтримка TypeScript 3.2 є в наступних редакторах:

  • Visual Studio 2017 (для версії 15.2 або пізнішої).
  • Visual Studio 2015 (потрібне оновлення 3).
  • Visual Studio Code (потрібно оновити версію до повної).
  • Sublime Text 3 через PackageControl.

В інших редакторах оновлення до TypeScript 3.2 очікується в найближчий час. Також Microsoft обіцяє виправлення помилок та оптимізацію для зручності роботи.

TypeScript є мовою програмування, створеною Microsoft у 2012 році. Він позиціонується як система розробки веб-додатків, яка розширює та доповнює можливості JavaScript.

Інші новини

Найкраща ціна