From 3c2770a9f70f1f953b5f1d547967174ccf9a9b1e Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 18:16:02 +0300 Subject: [PATCH 01/24] Update 1.ts --- src/baseTypes/1.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/baseTypes/1.ts b/src/baseTypes/1.ts index 2876cb9..ac4d39b 100644 --- a/src/baseTypes/1.ts +++ b/src/baseTypes/1.ts @@ -1,10 +1,10 @@ // Перетворіть цей код на TypeScript, вказавши відповідні типи для всіх змінних. -let age = 50; -let name = 'Max'; -let toggle = true; -let empty = null; -let notInitialize; -let callback = (a) => { return 100 + a }; +let age:number = 50; +let name:string = 'Max'; +let toggle:boolean = true; +let empty:null = null; +let notInitialize: unknown; +let callback = (a:number): number => { return 100 + a }; export {}; From 2f5e23ed47b34d564adb857671687ef3b920711b Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 18:24:13 +0300 Subject: [PATCH 02/24] Update 2.ts --- src/baseTypes/2.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/baseTypes/2.ts b/src/baseTypes/2.ts index 0ab2f48..d1d9ab5 100644 --- a/src/baseTypes/2.ts +++ b/src/baseTypes/2.ts @@ -1,5 +1,5 @@ -let anything = -20; +let anything: any = -20; anything = 'Text'; anything = {}; -export {}; \ No newline at end of file +export {}; From 4ee155fb4776eb4f2c84e6e4bda48771e52b0b32 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 19:17:21 +0300 Subject: [PATCH 03/24] Update 3.ts --- src/baseTypes/3.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/baseTypes/3.ts b/src/baseTypes/3.ts index 9e7f211..f137fa0 100644 --- a/src/baseTypes/3.ts +++ b/src/baseTypes/3.ts @@ -1,6 +1,7 @@ let some:unknown; some = 'Text'; -let str: string; -str = some; +if (typeof some === "string") { + let str: string = some; +} -export {}; \ No newline at end of file +export {}; From cdf0d9a2fec24393dc3f8920021f55a9ecf06ab6 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 19:32:04 +0300 Subject: [PATCH 04/24] Update 4.ts --- src/baseTypes/4.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/baseTypes/4.ts b/src/baseTypes/4.ts index ec89510..ea37253 100644 --- a/src/baseTypes/4.ts +++ b/src/baseTypes/4.ts @@ -3,6 +3,7 @@ щоб гарантувати, що перший елемент завжди буде рядком, а другий числом? */ -let person = ['Max', 21]; +let person:[string, number]; +person = ['Max', 21]; -export {}; \ No newline at end of file +export {}; From dc3272bb5e1b44fc9cec845990d589df9c0bd70f Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 19:43:12 +0300 Subject: [PATCH 05/24] Update 5.ts --- src/baseTypes/5.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/baseTypes/5.ts b/src/baseTypes/5.ts index 4aaf83f..e4744ec 100644 --- a/src/baseTypes/5.ts +++ b/src/baseTypes/5.ts @@ -3,5 +3,9 @@ І так само визначте змінну, яка може приймати тільки одне з двох рядкових значень: 'enable' або 'disable' (literal type)? */ -let union; -let literal; \ No newline at end of file +let union: string | number; + +type Value = "enable" | "disable"; +let literal: Value; +literal = "enable"; +literal = "disable"; From 334750de7257ec46170b8c6dd4b2580baeced669 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 19:58:55 +0300 Subject: [PATCH 06/24] Update 6.ts --- src/baseTypes/6.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/baseTypes/6.ts b/src/baseTypes/6.ts index 20b4c8a..57c2bde 100644 --- a/src/baseTypes/6.ts +++ b/src/baseTypes/6.ts @@ -2,16 +2,16 @@ Як ви вкажете типи для аргументів і значень цих функцій, що повертаються? */ -function showMessage(message) { - console.log(message); +function showMessage(message: string): void { + console.log(message); } -function calc(num1, num2) { +function calc(num1: number, num2: number): number { return num1 + num2; } -function customError() { +function customError(): never { throw new Error('Error'); } -export {}; \ No newline at end of file +export {}; From 992c98ed948fd7dbef16dc6eb545a08d64d1c07b Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 20:57:48 +0300 Subject: [PATCH 07/24] Update 7.ts --- src/baseTypes/7.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/baseTypes/7.ts b/src/baseTypes/7.ts index 6774521..dd4f95f 100644 --- a/src/baseTypes/7.ts +++ b/src/baseTypes/7.ts @@ -1,4 +1,17 @@ /* Створіть функцію (isWeekend), яка приймає день тижня (з вашого enum) і повертає boolean значення, що вказує, чи це день робочий чи вихідний. -*/ \ No newline at end of file +*/ +enum dayWeek { + MONDAY, + TUESDAY, + WEDNESDAY, + THURSDAY, + FRIDAY, + SATURDAY, + SUNDAY, +} + +function isWeekend(todayDay: dayWeek): boolean { + return dayWeek.SATURDAY === todayDay || dayWeek.SUNDAY === todayDay; +} From 3987d9476ea2a1a17e540a419cafeb8da91930ea Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 21:06:50 +0300 Subject: [PATCH 08/24] Update 8.ts --- src/baseTypes/8.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/baseTypes/8.ts b/src/baseTypes/8.ts index 40018b2..44e796d 100644 --- a/src/baseTypes/8.ts +++ b/src/baseTypes/8.ts @@ -2,7 +2,7 @@ Створіть тип "Gender", використовуючи union type, який може містити значення "male", "female". Створіть змінну myGender цього типу. */ - -const myGender; +type Gender = "male" | "female" +const myGender:Gender = "female"; export {}; From b7499b661d124d8faf04f6d9847fea7d54c125b9 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 21:31:55 +0300 Subject: [PATCH 09/24] Update 9.ts --- src/baseTypes/9.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/baseTypes/9.ts b/src/baseTypes/9.ts index 16a4c88..4e8a98b 100644 --- a/src/baseTypes/9.ts +++ b/src/baseTypes/9.ts @@ -2,7 +2,15 @@ Створіть новий тип даних, який підходить для цих двох об'єктів. */ -const page1 = { +type Page = { + title: string; + likes: number; + accounts: string[]; + status: "open" | "close"; + details?: {}; +}; + +const page1: Page = { title: 'The awesome page', likes: 100, accounts: ['Max', 'Anton', 'Nikita'], @@ -13,11 +21,11 @@ const page1 = { } } -const page2 = { +const page2: Page = { title: 'Python or Js', likes: 5, accounts: ['Alex'], status: 'close', } -export {}; \ No newline at end of file +export {}; From 6bec4afe7949399a21e559f1db62facccd08439e Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 21:55:37 +0300 Subject: [PATCH 10/24] Update 1.ts --- src/generic/1.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/generic/1.ts b/src/generic/1.ts index c368405..303659c 100644 --- a/src/generic/1.ts +++ b/src/generic/1.ts @@ -3,15 +3,15 @@ Доповніть цю функцію, використовуючи generics, щоб вона повертала правильний тип. */ -function getPromise () { +function getPromise

(arg:P): Promise

{ return new Promise((resolve) => { - resolve(['Text', 50]); + resolve(arg); }); } -getPromise() +getPromise(['Text', 50]) .then((data) => { console.log(data); }); -export {}; \ No newline at end of file +export {}; From 44bc9650c3c50cbf1de3e4f2307332a3790b75ff Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Sun, 15 Oct 2023 22:28:56 +0300 Subject: [PATCH 11/24] Update 2.ts --- src/generic/2.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/generic/2.ts b/src/generic/2.ts index 734d80b..35fc37f 100644 --- a/src/generic/2.ts +++ b/src/generic/2.ts @@ -11,7 +11,7 @@ type AllType = { weight: number } -function compare (top, bottom): AllType { +function compare (top: AllType, bottom: AllType): AllType { return { name: top.name, color: top.color, @@ -20,4 +20,6 @@ function compare (top, bottom): AllType { } } -export {}; \ No newline at end of file + + +export {}; From 497ee4a26567c9e28f73cff5421f771bbb1eaf5e Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 18:34:02 +0300 Subject: [PATCH 12/24] Update 3.ts --- src/generic/3.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/generic/3.ts b/src/generic/3.ts index 7838f9d..3f31669 100644 --- a/src/generic/3.ts +++ b/src/generic/3.ts @@ -3,8 +3,8 @@ Використовуйте generics, щоб вказати, що ці об'єкти можуть бути будь-якого типу. */ -function merge (objA, objB) { +function merge (objA:T, objB:K) { return Object.assign(objA, objB); } -export {} \ No newline at end of file +export {} From 9f8f95250688c611bfbd30776967c8f1614bde8e Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 18:51:13 +0300 Subject: [PATCH 13/24] Update 4.ts --- src/generic/4.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/generic/4.ts b/src/generic/4.ts index 71d1248..b0a1261 100644 --- a/src/generic/4.ts +++ b/src/generic/4.ts @@ -1,17 +1,20 @@ /* Використовуйте generics та інтерфейси, щоб виправити помилку в наступних класах: */ +interface T { + title: TitleType; +} -class Component { - constructor (public props:T) { +class Component { + constructor (public props: T) { } } -class Page extends Component { +class Page extends Component { pageInfo () { console.log(this.props.title); } } -export {}; \ No newline at end of file +export {}; From be495cffbc04f98bbc60b05f99928aa2ac458c46 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 18:57:47 +0300 Subject: [PATCH 14/24] Update 5.ts --- src/generic/5.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/generic/5.ts b/src/generic/5.ts index 5b50b61..93439ca 100644 --- a/src/generic/5.ts +++ b/src/generic/5.ts @@ -3,9 +3,9 @@ Використовуйте generics, щоб цей інтерфейс міг працювати з будь-якими типами ключів та значень. */ -interface KeyValuePair { - key; - value; +interface KeyValuePair { + key: Type; + value: Type; } -export {}; \ No newline at end of file +export {}; From 71b9d979e54102a30071e40f98fc8356f78fc332 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 19:04:38 +0300 Subject: [PATCH 15/24] Update 6.ts --- src/generic/6.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/generic/6.ts b/src/generic/6.ts index a146ea8..ff45e2c 100644 --- a/src/generic/6.ts +++ b/src/generic/6.ts @@ -14,10 +14,10 @@ type User = { password: string; } -function createOrUpdateUser(initialValues: User) { +function createOrUpdateUser(initialValues: Partial) { // Оновлення користувача } createOrUpdateUser({ email: 'user@mail.com', password: 'password123' }); -export {}; \ No newline at end of file +export {}; From 4a470578d1cd8825e9a176bdd34e952f3acc3f47 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 20:15:06 +0300 Subject: [PATCH 16/24] Update 7.ts --- src/generic/7.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/generic/7.ts b/src/generic/7.ts index f849799..b1d3223 100644 --- a/src/generic/7.ts +++ b/src/generic/7.ts @@ -10,10 +10,13 @@ export enum UserRole { } // Замініть наступний код на версію за допомогою Record -const RoleDescription = { - admin: 'Admin User', - editor: 'Editor User', - guest: 'Guest User', + +type RoleValue = Record + +const RoleDescription:RoleValue = { + [UserRole.admin]: 'Admin User', + [UserRole.editor]: 'Editor User', + [UserRole.guest]: 'Guest User', }; -export {}; \ No newline at end of file +export {}; From 6b188bb9b22ae2d4a8e821390e8d10fa253d8fc6 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 20:21:54 +0300 Subject: [PATCH 17/24] Update 8.ts --- src/generic/8.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/generic/8.ts b/src/generic/8.ts index cbe9f1a..2b92dce 100644 --- a/src/generic/8.ts +++ b/src/generic/8.ts @@ -19,6 +19,6 @@ type Form = { }; // Реалізуйте Params так, щоб унеможливити поле 'errors' з типу Form -type Params = Form; +type Params = Omit; -export {}; \ No newline at end of file +export {}; From edfb491208d555829b884d464c2cc5ba2dac55c9 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 21:20:27 +0300 Subject: [PATCH 18/24] Update 1.ts --- src/baseTypes/1.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/baseTypes/1.ts b/src/baseTypes/1.ts index ac4d39b..24644e7 100644 --- a/src/baseTypes/1.ts +++ b/src/baseTypes/1.ts @@ -4,7 +4,7 @@ let age:number = 50; let name:string = 'Max'; let toggle:boolean = true; let empty:null = null; -let notInitialize: unknown; +let notInitialize: undefined; let callback = (a:number): number => { return 100 + a }; export {}; From ce4eba5be8a6421936623388a133185a97ecb5a7 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 21:43:24 +0300 Subject: [PATCH 19/24] Update 3.ts --- src/baseTypes/3.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/baseTypes/3.ts b/src/baseTypes/3.ts index f137fa0..1e2e555 100644 --- a/src/baseTypes/3.ts +++ b/src/baseTypes/3.ts @@ -1,7 +1,9 @@ let some:unknown; some = 'Text'; +let str: string; + if (typeof some === "string") { - let str: string = some; + str = some; } export {}; From a43b03bebb8fa432730aaf3d865a998ca5ae7c4d Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 21:50:45 +0300 Subject: [PATCH 20/24] Update 9.ts --- src/baseTypes/9.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/baseTypes/9.ts b/src/baseTypes/9.ts index 4e8a98b..12190ab 100644 --- a/src/baseTypes/9.ts +++ b/src/baseTypes/9.ts @@ -7,7 +7,7 @@ type Page = { likes: number; accounts: string[]; status: "open" | "close"; - details?: {}; + details?: { createAt: Date; updateAt: Date }; }; const page1: Page = { From 8137ef858422f26d54cca6384192a9945d8273f7 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 22:01:20 +0300 Subject: [PATCH 21/24] Update 1.ts --- src/generic/1.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/generic/1.ts b/src/generic/1.ts index 303659c..2393b61 100644 --- a/src/generic/1.ts +++ b/src/generic/1.ts @@ -3,13 +3,13 @@ Доповніть цю функцію, використовуючи generics, щоб вона повертала правильний тип. */ -function getPromise

(arg:P): Promise

{ +function getPromise (): Promise<(string | number)[]> { return new Promise((resolve) => { - resolve(arg); + resolve(['Text', 50]); }); } -getPromise(['Text', 50]) +getPromise() .then((data) => { console.log(data); }); From 576b665050b59d848e57b6986b003e74984e0950 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 22:17:31 +0300 Subject: [PATCH 22/24] Update 2.ts --- src/generic/2.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/generic/2.ts b/src/generic/2.ts index 35fc37f..9226fd7 100644 --- a/src/generic/2.ts +++ b/src/generic/2.ts @@ -11,7 +11,8 @@ type AllType = { weight: number } -function compare (top: AllType, bottom: AllType): AllType { +function compare (top: Pick, + bottom: Pick,): AllType { return { name: top.name, color: top.color, From 2fa3f07b0d01f979ec286d855251ebfbbe606d23 Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 22:28:01 +0300 Subject: [PATCH 23/24] Update 4.ts --- src/generic/4.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/generic/4.ts b/src/generic/4.ts index b0a1261..2ea93d0 100644 --- a/src/generic/4.ts +++ b/src/generic/4.ts @@ -1,20 +1,18 @@ /* Використовуйте generics та інтерфейси, щоб виправити помилку в наступних класах: */ -interface T { - title: TitleType; +interface TitleType { + title: string; } -class Component { - constructor (public props: T) { - - } +class Component { + constructor(public props: T) {} } -class Page extends Component { - pageInfo () { - console.log(this.props.title); - } +class Page extends Component { + pageInfo() { + console.log(this.props.title); + } } export {}; From 5757da118075d5d1e3ce024840b63fe90bbd686e Mon Sep 17 00:00:00 2001 From: olena-nikitchenko <113857063+olena-nikitchenko@users.noreply.github.com> Date: Mon, 16 Oct 2023 22:28:45 +0300 Subject: [PATCH 24/24] Update 5.ts --- src/generic/5.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/generic/5.ts b/src/generic/5.ts index 93439ca..1f15da3 100644 --- a/src/generic/5.ts +++ b/src/generic/5.ts @@ -3,9 +3,9 @@ Використовуйте generics, щоб цей інтерфейс міг працювати з будь-якими типами ключів та значень. */ -interface KeyValuePair { - key: Type; - value: Type; +interface KeyValuePair { + key: T; + value: K; } export {};