Какая хорошая книжка по TypeScript для тех, кто знает только JS и не приходил в этот мир из языка Си с ООП?

Если вы уже знакомы с JavaScript и не имеете опыта работы со Си или языками программирования, основанными на объектно-ориентированном программировании (ООП), я рекомендую вам следующую книгу по TypeScript: "TypeScript: Deep Dive" автора Басаара Араканяна. Эта книга является известным ресурсом на просторах TypeScript. Она предлагает самые глубокие, но простыми словами объяснения основ языка и его особенностей. ... Читать далее

Как задать тип рекурсивно?

В TypeScript можно определить тип данных рекурсивно с помощью конструкции type или interface. Для того чтобы определить тип рекурсивно, необходимо использовать самого себя в качестве типа. Рассмотрим пример определения рекурсивного типа для бинарного дерева. Бинарное дерево состоит из узлов, каждый из которых может иметь двух потомков - левого и правого. Каждый потомок также является бинарным ... Читать далее

Как в TS сделать тип типо { id: number, [key in keys]: string } ???

В TypeScript вы можете использовать индексные типы для создания типов, которые имеют свойства с динамическими именами. Для создания типа, который имеет свойство "id" типа "number" и динамические свойства с именами из массива "keys" и типом "string", вы можете использовать следующий синтаксис: type MyType<Keys extends string> = { id: number; } & { [key in Keys]: ... Читать далее

Стоит ли вносить константы в класс?

Вопрос, стоит ли вносить константы в класс, часто возникает при проектировании программного обеспечения на TypeScript. Ответ на этот вопрос зависит от особенностей вашего проекта и предпочтений разработчиков. Внесение констант в класс имеет свои преимущества и недостатки. Вот некоторые из них: Преимущества: 1. Читаемость кода: Если константы относятся исключительно к классу и используются только в его ... Читать далее

Type ‘string’ is not assignable to type ‘"" | «success» | «warning» | "error"’?

Ошибка "Type 'string' is not assignable to type '' | 'success' | 'warning' | 'error'" возникает в TypeScript, когда попытка присвоения значения типа 'string' переменной, которая ожидает принять одно из заданных значений: '' (пустая строка), 'success' (успех), 'warning' (предупреждение) или 'error' (ошибка). Такая типизация используется, чтобы сделать код более надежным и предотвратить возможные ошибки во ... Читать далее

Как заменить текст до тире в строке?

Чтобы заменить текст до тире в строке при использовании TypeScript, можно воспользоваться различными методами и функциями, предоставляемыми JavaScript и TypeScript. Одним из подходов является использование метода substring() или slice(). Оба метода принимают два аргумента: начальный и конечный индексы подстроки. Необходимо найти индекс тире с помощью метода indexOf() и затем использовать его для получения подстроки: let ... Читать далее

Как в TypeScript, добавлять свойство по условию?

В TypeScript вы можете добавить свойство к объекту на основе условия, используя конструкцию if-else или оператор '?'. Давайте рассмотрим оба подхода. Первый подход с использованием конструкции if-else: interface MyObject { name: string; age: number; } function addPropertyBasedOnCondition(obj: MyObject): MyObject { if (obj.age >= 18) { obj.hasDrivingLicense = true; } else { obj.hasDrivingLicense = false; } ... Читать далее

Как объединить несколько типов в один интерфейс?

В TypeScript вы можете объединить несколько типов в один интерфейс с помощью оператора | (или «или»). Это называется объединением типов. Чтобы объединить типы, вы просто указываете их через оператор | в определении интерфейса. Например, предположим, у нас есть два типа: User и Admin, и мы хотим создать интерфейс, который может представлять и того и другого: ... Читать далее

Можно ли перегружать свойства?

В TypeScript нельзя напрямую перегружать свойства, как это делается в языках программирования, таких как Java или C++. Вместо этого в TypeScript предоставляется возможность использовать геттеры и сеттеры, которые позволяют управлять доступом к свойствам и вмешаться в их чтение и запись. Геттеры и сеттеры - это специальные методы, которые позволяют получать и устанавливать значения свойств объекта. ... Читать далее

Как обновить свойство имя которого было передано в качестве аргумента?

Для обновления свойства имени, которое было передано в качестве аргумента, необходимо использовать функции и объекты в TypeScript. Вот пример реализации этой задачи: interface Person { name: string; age: number; } function updateName(person: Person, newName: string): void { person.name = newName; } // Создаем объект типа Person const person: Person = { name: "John", age: 25 ... Читать далее