Типскрит - одна з групи мов, які використовують Javascript Тривалість виконання як середовище виконання: .. Файли, що містять код тексту, складається з нормального JavaScript, який потім може бути запущений браузером.
Джеремі Ашкенас спочатку зробив цю концепцію популярною за своєю мовою кавоциклі, але, на жаль, його відносно зворотний синтаксис був важко вивчити для розробників, знайомих з C # або Visual Basic.
Оскільки Microsoft розширилася в технології Web 2.0, вона вирішила зробити натхнення від Jeremy Ashkenas. Через можливості Visual Studio розробники можуть просто скоротитись під час забезпечення різних мовних розширень.
Типскрит не обмежується статичним набором: він також поставляється з різноманітними розширеними функціями, які дозволяють моделювати парадигм, орієнтовані на об'єкт, в Інтернеті. Цей короткий посібник виведе вас через деякі основні функції. Якщо мова звертається до вас, більше інформації можна дізнатися на льоту.
Незважаючи на те, що типскрит також можна використовувати на Linux або MacOS, ми будемо дотримуватися офіційного IDE Microsoft. Завантажте безкоштовне співтовариство Visual Studio 2017 від Microsoft, тут і обов'язково позначте завантаження ASP.NET під час розгортання.
Завдяки швидкому випуску каденції типу, візуальна студія повинна бути розширена з модулем SDK, який можна завантажити з Сайт Microsoft тут . Просто запустіть інсталятор, як якщо б це стане стандартною програмою Windows.
Це не було б Microsoft, якщо не було додаткових залучених до послуг. Хоча SDK оновлює вашу установку Visual Studio, фактичний компілятор TSC не додається до командного рядка. Ця проблема найкраще вирішена, використовуючи менеджер пакетів NPM NODE.JS на командному рядку.
PS C: \ \ tamha \ Завантаження & gt; NPM install -g typscript
C: користувачі \ tamha \ appdata \ roaming \ npm \ tsc - & gt; C: \ Користувачі \ tamha \ AppData \ Roaming \ npm \ node_modules \ typscript \ bin \ tsc
C: користувачі \ tamha \ appdata \ roaming \ npm \ tsserver - & gt; C: \ Tamha \ AppData \ Roaming \ npm \ node_modules \ typscript \ bin \ tsserver
C: користувачі \ tamha \ appdata \ Roaming \ npm
Visual Studio розраховує працювати в процесі розв'язки: Хоча цікаво, це менше, ніж ідеально підходить для наших потреб. Замість цього створіть файл під назвою Worker.ts та помістіть його у зручному місці у вашій файловій системі. Відкрийте його, перетягнувши його до Visual Studio, і скиньте його всередині панелі інструментів на вершині. Далі, змініть його вміст, щоб включити наступний код:
Функція Sayoi () {
оповіщення ("Oi!");
}
Sayoi ();
Як згадувалося в вступі, файл .ts файл не може зробити багато самостійно. Через це, перейдіть до створення файлу під назвою index.html, який повинен бути розташований у тій же папці. Далі додайте код скелету, який показав, що супроводжує цей крок. Він завантажує вихід компілятора, і запускає його, як ніби це був інший біт JavaScript.
& lt; html & gt;
& lt; head & gt;
& lt; script src = "worker.js" & gt; & lt; / script & gt;
& lt; / head & gt;
& lt; body & gt; & lt; / body & gt;
& lt; / html & gt;
Наступним кроком передбачає ручне переобладнання файлу .ts. Відкрийте PowerShell та введіть команду TSC, а потім назву вхідного файлу. За замовчуванням вихідний файл поділиться базовим ім'ям файлу, але буде мати розширення .js замість .ts .ts. Нарешті, відкрийте файл index.html у браузері вибору, щоб підтвердити появу вікна повідомлення.
PS C: \ Customs \ tamha \ Завантаження & gt; TSC. \ Worker.ts
Поки що напис зробив трохи більше, ніж діяти як більш складне середовище JavaScript. Наступним кроком передбачає активацію підтримки статичного друку: це дозволяє компілятору виконувати статичний аналіз параметрів, утримуючи недійсні значення. Для цього потрібні набори типів - основні типи вказані в таблиці вище, тоді як класи будуть обговорюватися пізніше.
Застосування типу типу типу відліняються за допомогою "a:", розміщеного після назви змінної. Давайте змінимо нашу функцію OI, щоб взяти номер, і дозвольте нам передати рядок. Нарешті, викликайте TSC-компілятор ще раз, щоб зняти ваші очі на повідомлення про помилку, показану на знімку екрана над - Visual Studio, до речі, також підкреслить відповідну позицію.
Функція Sayoi (WhatTosay: Номер) {
оповіщення (WhatTosay);
}
Sayoi ("Привіт");
JavaScript реалізує об'єктно-орієнтацію за допомогою прототипів: стиль коду, який є незвичайним у світі .NET та C / C ++. Типскриття вирішує цю проблему, дозволяючи створення класів - процес, показаний у фрагменті, що супроводжує цей крок.
Клас Уявіть {
Публічний MyResult: Номер;
Public Mya: Номер;
публічний МІБ: номер;
Конструктор (_a: Номер, _b: Номер)
{
це .myresult = _a + _b;
this.mya = _a;
}
}
Як правило, публічний атрибут використовується для заявлення, що елемент програми має бути доступним ззовні. Використовуючи як параметр конструктора, він замість цього доручає магнітний компілятор для створення локальних полів з однаковими іменами.
Клас Уявіть {
Публічний MyResult: Номер;
// Public Mya: номер;
Конструктор (Public Mya: Номер, public _b: Номер)
{
це .myresult = mya + _b;
this.mya = mya;
}
}
Давайте розширимо наш приклад класу, надаючи його методом, який доступ до значень, що зберігаються в MyResult та Mya, і виводить їх на екрані. Нарешті, новий параметр використовується для створення екземпляра класу - він використовується для виклику методу.
Клас Уявіть {
Публічний MyResult: Номер;
. . .
Public StateMething (): void {
оповіщення (це .myresult);
}
}
Нехай Міймагейн: Уявіть = Нове уявлення (2, 2);
myimagine.saysomething ();
Дизайн мови напису призначений для збереження розробників якомога більше зусиль. Одна хороша особливість - це автоматична популяція параметрів, створених за допомогою ярлика, показаного.
Клас Уявіть {
Публічний MyResult: Номер;
Конструктор (Public Mya: номер, публічний MYB: номер)
{
this.myresult = mya + myb;
}
Public StateMething (): void {
оповіщення (this.mya + "" + this.myb);
}
}
Одним з основних принципів об'єктно-орієнтованого програмування включає в себе основні заняття один над одним. Похідні заняття можуть потім перевизначити вміст їх базового класу, що призводить до гнучко регульованих ієрархій класової.
Клас Майбутнє поширюється уява
{
Public StateMething (): void {
console.log (this.mya);
}
}
Фрагмент коду згори розширив уяву класу з суб-елементом, який називається майбутнім. Майбутнє відрізняється від того, щоб уявити, що його мізерний метод, більш розвинений, випускає повідомлення в командному рядку браузера.
Нехай Міймагейн: Уявіть = Нове майбутнє (2, 2);
myimagine.saysomething ();
Нехай myfuture: майбутнє = нове майбутнє (9, 9);
myfuture.saysomething ();
З цим, фактичний код можна перевірити. Під час запуску консоль браузера буде містити два показники майбутнього - розширений клас зберігає свої властивості навіть тоді, коли він викликаний уявним об'єктом.
Підвищення змінних членів з громадським модифікатором є непопулярним: це, зрештою, забирає більшість контролів того, які користувачі роблять з змінним вмістом. Майгові до аксесуарів дозволяють працювати навколо цієї проблеми в моді, подібному до традиційного ООП. Майте на увазі, що лише члени, що читаються, також підтримуються, але використання цієї функції вимагає активації підтримки ECMASScript5.
Громад _MYCACHE: String;
Отримати FullCache (): рядок {
повернути це._mycache;
}
Встановіть FullCache (NEWX: рядок) {
якщо (newx == "hello") {
це._mycache = newx;
}
інше {
Console.Log ("неправильні дані!");
}
}
Можливість створення складних ієрархій спадщини буде мотивувати розробників, щоб спробувати щастя на абстрактних класах. Типскриття також ви охопили в цьому відношенні - приклад, який супроводжує цей крок, створює клас з абстракцією та реальним членом. Спроба інстактиція абстрактного класу безпосередньо призводить до помилки компілятора.
Абстрактний клас уявляє себе {
Публічний MyResult: Номер;
Анотація Sayname (): Void;
Конструктор (Public Mya: Номер, публічний MYB: Номер) {
this.myresult = mya + myb;
}
Public StateMething (): void {
оповіщення (this.mya + "" + this.myb);
}
}
Майбутнє класу розширюється уявленням
. . .
Public SayName () {
console.log ("hello");
}
}
Оскільки об'єктними структурами стають складнішими, розробники часто опиняються обличчям, коли один клас реалізує кілька бітів логіки. У цьому випадку інтерфейс робить для гарного обхідного шляху - приклад показує, що очікувати.
Інтерфейс Datainterface {
ПОЛЕ: номер;
робочий кур'єр (): порожнеча;
}
Як у випадку, коли клас вище, інтерфейс не робить нічим, якщо ми не можемо використовувати його. На щастя, впроваджуючи це не особливо важко: майте на увазі, що автори інтерфейсу можуть, крім того, оголосити частини їх створення необов'язковими.
Клас-працівник реалізує дату Interface {
ПОЛЕ: номер;
Severmethod (): void {
кинути нову помилку ("Метод не реалізований".);
}
}
Компілятор типсу застосовує сувору перевірку змінної дії. При роботі на класі зберігання, генерики дозволяють дозволити кінцевому користувачеві визначати тип для обробки. Крім того, напис також дозволяє іншим загальним елементам, таким як функції, як показано в (тавтологічному) фрагменті, взятому з документації.
// Загальна функція
Функція ідентифікація (ARG: Номер): Номер {
Повернення аргу;
}
// загальний клас
клас GenericNumber & lt; t & gt; {
Zerovalue: t;
Додати: (x: t, y: t) = & gt; T; }
Державні машини та подібні елементи користуються значно від способу обмеження змінної для зберігання декількох чітко визначених станів. Це може бути досягнуто за допомогою типу даних ENUM:
enum parserstate {
Idele = 1,
Read0,
Read1
}
клас уявити
Публічний Містат: Парстстат;
Конструктор (Public Mya: номер, публічний MYB: номер)
{
this.mystate = parserstate.idle;
Покриття мови як комплекс як типсформ у єдиній статті практично неможливо. Подивись на Приклади веб-сайтів Щоб дізнатись більше про мовні прив'язки.
Ця стаття була опублікована у випуску 266 Веб-дизайнер , журнал "Творчий веб-дизайн" - пропонуючи експертні підручники, найсучасніші тенденції та безкоштовні ресурси. Купити проблему 266 тут або Підписатися на веб-дизайнер тут .
Спеціальна різдвяна пропозиція: Зберегти до 49% на підписку на веб-дизайнер для вас або друга на Різдво. Це обмежена пропозиція, тому рухайтеся швидко ...
Пов'язані статті:
(Зображення кредиту: Artem Solop) Я завжди прагнув розвивати свій осо�..
Як художник у студії гри, я забув більшість традиційних середовищ, але ..
Там є необґрунтована містика навколо нафтового живопису, яка поставил..
Навчальна реагування, бібліотека JavaScript для створення інтерфейсів кор�..
Поліпент Zbrushcore це фантастичний інструмент, який дозволяє дода..
У цьому мастеркласі я розкриваю основні кроки, які потрібно дотримува�..
Як веб-розробники та творці вмісту, ми зазвичай витрачаємо багато часу..
Картина з маслами - це захоплюючий спосіб створення мистецтва. Однак багато людей можна залякувати сере�..