From 71850198065cb93ff954e9352e2efe2828393072 Mon Sep 17 00:00:00 2001 From: Yaroslav Komarov Date: Tue, 27 Apr 2021 00:11:38 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BC=D0=B0=D1=80=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=AF=D1=80=D0=BE=D1=81=D0=BB=D0=B0=D0=B2=201=20-=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/task_1/app.ts | 4 +++ src/task_1/typing.d.ts | 12 ++++++++ src/task_2/example.ts | 11 ++++++++ src/task_2/index.html | 14 ++++++++++ src/task_2/setting.ts | 13 +++++++++ src/task_2/setting_val.ts | 9 ++++++ src/task_3/index.ts | 59 ++++++++++++++++++++++++--------------- 7 files changed, 100 insertions(+), 22 deletions(-) create mode 100644 src/task_1/app.ts create mode 100644 src/task_1/typing.d.ts create mode 100644 src/task_2/example.ts create mode 100644 src/task_2/index.html create mode 100644 src/task_2/setting.ts create mode 100644 src/task_2/setting_val.ts diff --git a/src/task_1/app.ts b/src/task_1/app.ts new file mode 100644 index 0000000..1105685 --- /dev/null +++ b/src/task_1/app.ts @@ -0,0 +1,4 @@ +let user: User = new User(19, 'Yaroslav'); +user.upAgeByYear(); + +console.log(user.age); \ No newline at end of file diff --git a/src/task_1/typing.d.ts b/src/task_1/typing.d.ts new file mode 100644 index 0000000..d7f209f --- /dev/null +++ b/src/task_1/typing.d.ts @@ -0,0 +1,12 @@ +interface ICustom { + user: User; +} + +declare var Custom: ICustom; + +declare class User { + public age: number; + public name: string; + constructor(a: number, n: string); + public upAgeByYear(): void; +} \ No newline at end of file diff --git a/src/task_2/example.ts b/src/task_2/example.ts new file mode 100644 index 0000000..1ef58e8 --- /dev/null +++ b/src/task_2/example.ts @@ -0,0 +1,11 @@ +import {SettingValue, Setting} from './setting'; + +class Example { + public title?: string; + public id?: number; + private _setting: Setting; + + constructor(s: Setting) { + this._setting = s; + } +} diff --git a/src/task_2/index.html b/src/task_2/index.html new file mode 100644 index 0000000..2924409 --- /dev/null +++ b/src/task_2/index.html @@ -0,0 +1,14 @@ + + + + + + Заголовок + + + + + + \ No newline at end of file diff --git a/src/task_2/setting.ts b/src/task_2/setting.ts new file mode 100644 index 0000000..0b14c0a --- /dev/null +++ b/src/task_2/setting.ts @@ -0,0 +1,13 @@ +import {SettingValue} from './setting_val'; + +class Setting { + public key: string; + public value: SettingValue; + + constructor(k: string, ov: SettingValue) { + this.key = k; + this.value = ov; + } +} + +export {SettingValue, Setting}; diff --git a/src/task_2/setting_val.ts b/src/task_2/setting_val.ts new file mode 100644 index 0000000..d87d17c --- /dev/null +++ b/src/task_2/setting_val.ts @@ -0,0 +1,9 @@ +export class SettingValue { + public property1: string; + public property2: string; + + constructor(p1: string, p2: string) { + this.property1 = p1; + this.property2 = p2; + } +} diff --git a/src/task_3/index.ts b/src/task_3/index.ts index 04eaab2..ec2b613 100644 --- a/src/task_3/index.ts +++ b/src/task_3/index.ts @@ -16,33 +16,48 @@ class HttpError extends Error { } } -function req(url: string): Promise { - return fetch(url) - .then((response: Response) => { - if (response.status == 200) { - return response.json(); - } else { - throw new HttpError(response); - } - }) +async function req(url: string): Promise { + const response = await fetch(url); + if(response.status === 200) { + return await response.json() + } + throw new HttpError(response); + // return fetch(url) + // .then((response: Response) => { + // if (response.status == 200) { + // return response.json(); + // } else { + // throw new HttpError(response); + // } + // }) } // Запрашивать логин, пока github не вернёт существующего пользователя. -function getGitHub() { +async function getGitHub() { let name = prompt("Введите логин на GitHub?", ""); - return req(`https://api.github.com/users/${name}`) - .then(user => { - document.write(`Полное имя: ${user.name}, уникальный номер: ${user.id}.`); - return user; - }) - .catch(err => { - if (err instanceof HttpError && err.response.status == 404) { - document.write("Такого пользователя не существует."); - } else { - throw err; - } - }); + try { + const user = await req(`https://api.github.com/users/${name}`); + document.write(`Полное имя: ${user.name}, уникальный номер: ${user.id}.`); + } catch(err) { + if (err instanceof HttpError && err.response.status == 404) { + document.write("Такого пользователя не существует."); + } else { + throw err; + } + } + // return req(`https://api.github.com/users/${name}`) + // .then(user => { + // document.write(`Полное имя: ${user.name}, уникальный номер: ${user.id}.`); + // return user; + // }) + // .catch(err => { + // if (err instanceof HttpError && err.response.status == 404) { + // document.write("Такого пользователя не существует."); + // } else { + // throw err; + // } + // }); } getGitHub();