Что такое Type Assertions в TypeScript?
Type assertion представляет модель преобразования значения переменной к определенному типу.
Обычно в некоторых ситуациях одна переменная может представлять какой-то широкий тип, например, any, который по факту допускает значения различных типов. Однако при этом нам надо использовать переменную как значение строго определенного типа. И в этом случае мы можем привести к этому типу.
Есть две формы приведения. Первая форма заключается в использовании угловых скобок:
Type assertion представляет модель преобразования значения переменной к определенному типу.
Обычно в некоторых ситуациях одна переменная может представлять какой-то широкий тип, например, any, который по факту допускает значения различных типов. Однако при этом нам надо использовать переменную как значение строго определенного типа. И в этом случае мы можем привести к этому типу.
Есть две формы приведения. Первая форма заключается в использовании угловых скобок:
let someAnyValue: any = "hello world!";
let strLength: number = (<string>someAnyValue).length;
console.log(strLength); // 12
let someUnionValue: string | number = "hello work";Вторая форма заключается в применении оператора as:
strLength = (<string>someUnionValue).length;
console.log(strLength); // 10
let someAnyValue: any = "hello world!";
let strLength: number = (someAnyValue as string).length;
console.log(strLength); // 12
let someUnionValue: string | number = "hello work";
strLength = (someUnionValue as string).length;
console.log(strLength); // 10🔥 Новости из Лектрума 🔥
16 февраля пройдёт открытый урок из интенсива «Профессиональный курс React + Redux с современными frontend-методиками».
Участие бесплатное, а для тех, кто хочет получить больше плюшек и профит 😎 есть тариф «Расширенный».
Открытый урок — отличная возможность познакомиться с библиотекой React, научиться работать с JSX, освоить технику создания новых компонентов с помощью React, познакомиться с организацией курса, преподавателем, позадавать свои вопросы и если всё понравится, то продолжить обучение.
Зачем откладывать получение нового навыка?! Время — деньги! ⏰
Для кого:
🔸 Начинающие разработчики, которые уже выучили JavaScript.
🔸 Разработчики, которые переходят на MERN-стек.
🔸 Фронтенд разработчики, которые работали или учили React на классах, а теперь нужно освоить новую версию.
Не теряйте время и проходите регистрацию через сайт ивента ⬇️
Ждём всех в онлайне!
16 февраля пройдёт открытый урок из интенсива «Профессиональный курс React + Redux с современными frontend-методиками».
Участие бесплатное, а для тех, кто хочет получить больше плюшек и профит 😎 есть тариф «Расширенный».
Открытый урок — отличная возможность познакомиться с библиотекой React, научиться работать с JSX, освоить технику создания новых компонентов с помощью React, познакомиться с организацией курса, преподавателем, позадавать свои вопросы и если всё понравится, то продолжить обучение.
Зачем откладывать получение нового навыка?! Время — деньги! ⏰
Для кого:
🔸 Начинающие разработчики, которые уже выучили JavaScript.
🔸 Разработчики, которые переходят на MERN-стек.
🔸 Фронтенд разработчики, которые работали или учили React на классах, а теперь нужно освоить новую версию.
Не теряйте время и проходите регистрацию через сайт ивента ⬇️
Ждём всех в онлайне!
Для чего предназначены интерфейсы в TypeScript?
Интерфейс определяет свойства и методы, которые объект должен реализовать. Интерфейсы определяются с помощью ключевого слова interface. Для начала определим простенький интерфейс:
Интерфейс определяет свойства и методы, которые объект должен реализовать. Интерфейсы определяются с помощью ключевого слова interface. Для начала определим простенький интерфейс:
interface IUser {
id: number;
name: string;
}
Интерфейс в фигурных скобках определяет два свойства: id, которое имеет тип number, и name, которая представляет строку. Теперь используем его в программе: let employee: IUser = {
id: 1,
name: "Tom"
}
console.log("id: " + employee.id);
console.log("name: " + employee.name);
По сути employee - обычный объект за тем исключением, что он имеет тип IUser. Если правильнее говорить, то employee реализует интерфейс IUser. Причем эта реализация накладывает на employee некоторые ограничения. Так, employee должен реализовать все свойства и методы интерфейса IUser, поэтому при определении employee данный объект обязательно должен включать в себя свойства id и name.Какой из перечисленных псевдоклассов не может быть использован для стилизации ссылки?
Anonymous Quiz
5%
:hover
17%
:link
67%
:checked
5%
:active
7%
:visited
Расскажите про тип Unknown в TypeScript.
Иногда в TypeScript хочется описать тип, не подходящий ни к чему. Это бывает полезно для API, который хочет просигнализировать: «здесь может быть любое значение, поэтому вы должны произвести некоторую проверку перед тем, как его использовать». И пользователи вынуждены анализировать возвращаемые значения в целях безопасности.
В TypeScript 3.0 вводится новый тип с названием unknown, который делает именно это. Подобно типу any, типу unknown присваивается любое значение, однако, в отличие от any, тип unknown не может быть присвоен почти никакому другому без утверждения типа. Вы не можете получать доступ к объектам типа unknown, а также вызывать их или конструировать.
Если в приведенном выше примере подставить unknown вместо any, все случаи использования объекта foo приведут к ошибке:
Иногда в TypeScript хочется описать тип, не подходящий ни к чему. Это бывает полезно для API, который хочет просигнализировать: «здесь может быть любое значение, поэтому вы должны произвести некоторую проверку перед тем, как его использовать». И пользователи вынуждены анализировать возвращаемые значения в целях безопасности.
В TypeScript 3.0 вводится новый тип с названием unknown, который делает именно это. Подобно типу any, типу unknown присваивается любое значение, однако, в отличие от any, тип unknown не может быть присвоен почти никакому другому без утверждения типа. Вы не можете получать доступ к объектам типа unknown, а также вызывать их или конструировать.
Если в приведенном выше примере подставить unknown вместо any, все случаи использования объекта foo приведут к ошибке:
Функциональное программирование на JavaScript. Как улучшить код JavaScript-программ
В этой книге поясняются методики усовершенствования веб-приложений, влияющие в том числе на их расширяемость, модульность, повторное использование и тестируемость, а также производительность. В удобной для чтения форме на конкретных примерах и доходчивых пояснениях демонстрируется, как пользоваться методиками ФП на практике.
В этой книге поясняются методики усовершенствования веб-приложений, влияющие в том числе на их расширяемость, модульность, повторное использование и тестируемость, а также производительность. В удобной для чтения форме на конкретных примерах и доходчивых пояснениях демонстрируется, как пользоваться методиками ФП на практике.
Что такое React?
React - это JavaScript-библиотека, предназначенная для создания быстрых и интерактивных пользовательских интерфейсов (user interfaces, UI) для веб- и мобильных приложений. Это открытая (с открытым исходным кодом), основанная на компонентах, библиотека для фронтенда, отвечающая только за слой представления (view layer) приложения.
React - это JavaScript-библиотека, предназначенная для создания быстрых и интерактивных пользовательских интерфейсов (user interfaces, UI) для веб- и мобильных приложений. Это открытая (с открытым исходным кодом), основанная на компонентах, библиотека для фронтенда, отвечающая только за слой представления (view layer) приложения.
Что из перечисленного является Function Expression?
Anonymous Quiz
24%
function foo() {}
58%
var foo = function() {}
17%
() => {}
Как React работает с DOM?
Для того, чтобы сделать DOM быстрее, React использует виртуальный DOM, который, по сути, является представлением DOM-дерева в JavaScript. Когда возникает необходимость чтения или записи в DOM, используется данное представление. Затем виртуальный DOM пытается определить наиболее эффективный способ обновления браузерного DOM.
В отличие от DOM-элементов браузера, создание элементов в React обходится гораздо дешевле. React-DOM заботится об обновлении обычного DOM для совпадения с React-элементами. Это объясняется тем, что JavaScript очень быстрый, и хранение DOM-дерева в нем ускоряет модификацию последнего.
Для того, чтобы сделать DOM быстрее, React использует виртуальный DOM, который, по сути, является представлением DOM-дерева в JavaScript. Когда возникает необходимость чтения или записи в DOM, используется данное представление. Затем виртуальный DOM пытается определить наиболее эффективный способ обновления браузерного DOM.
В отличие от DOM-элементов браузера, создание элементов в React обходится гораздо дешевле. React-DOM заботится об обновлении обычного DOM для совпадения с React-элементами. Это объясняется тем, что JavaScript очень быстрый, и хранение DOM-дерева в нем ускоряет модификацию последнего.
Выживет ли он?
Герою необходимо пробраться в замок, окруженный драконами. На каждого дракона нужно по 2 пули. Напишите функцию, которая принимает количество доступных пуль и атакующих драконов и возвращает результат, сможет ли герой справиться.
1 аргумент - пули
2 аргумент - драконы
Примеры:
Герою необходимо пробраться в замок, окруженный драконами. На каждого дракона нужно по 2 пули. Напишите функцию, которая принимает количество доступных пуль и атакующих драконов и возвращает результат, сможет ли герой справиться.
1 аргумент - пули
2 аргумент - драконы
Примеры:
hero(10, 5) => true
hero(7, 4) => false