Добавление методов в интерфейсы
Часть раздела Введение в TypeScript путешествия по JavaScript на Coddy. Урок 43 из 73.
Интерфейсы TypeScript позволяют определить такое поведение, включив сигнатуры методов вместе с определениями свойств.
Сигнатура метода в interface указывает имя метода, его параметры и тип return, не предоставляя фактическую реализацию. Это создаёт контракт, которому должен соответствовать любой объект, соответствующий interface:
interface Person {
name: string;
age: number;
greet(): string; // Сигнатура метода
}
let user: Person = {
name: "Alice",
age: 30,
greet() {
return `Hello, I'm ${this.name}`;
}
};Сигнатура метода greet(): string сообщает TypeScript, что любой объект, реализующий интерфейс Person, должен иметь метод greet, который не принимает параметров и возвращает строку. Фактическая реализация может различаться у разных объектов, но сигнатура должна в точности совпадать.
Задание
ЛегкоСоздай interface с именем Calculator со следующими свойствами и methods:
brandтипаstringmodelтипаstringisScientificтипаboolean- метод
add, который принимает два параметра типаnumberи возвращает значение типаnumber - метод
getInfo, который не принимает параметров и возвращает значение типаstring
Создай interface с именем BankAccount со следующими свойствами и methods:
accountNumberтипаstringbalanceтипаnumberisActiveтипаboolean- метод
deposit, который принимает параметр типаnumberи возвращаетvoid - метод
getBalance, который не принимает параметров и возвращает значение типаnumber
Используя созданные interface, создай следующие variable:
- Создай variable с именем
myCalculatorтипаCalculatorсо значением brand"Casio", значением model"FX-991EX", значением isScientifictrue, методомadd, который возвращает сумму двух параметров, и методомgetInfo, который возвращает"[brand] [model]" - Создай variable с именем
savingsAccountтипаBankAccountсо значением accountNumber"SAV-12345", значением balance1500, значением isActivetrue, методомdeposit, который добавляет параметр к balance, и методомgetBalance, который возвращает текущее значение balance
Выведи следующие результаты в отдельных строках:
- Вызови метод
getInfoуmyCalculatorи выведи результат - Вызови метод
addуmyCalculatorс аргументами15и27и выведи результат - Вызови метод
getBalanceуsavingsAccountи выведи результат - Вызови метод
depositуsavingsAccountс аргументом250 - Снова вызови метод
getBalanceуsavingsAccountи выведи результат - Выведи свойство
isScientificобъектаmyCalculator
Попробуйте сами
// TODO: Напишите ваш код здесь
// Создайте интерфейс Calculator с необходимыми свойствами и методами
// Создайте интерфейс BankAccount с необходимыми свойствами и методами
// Создайте переменную myCalculator типа Calculator
// Создайте переменную savingsAccount типа BankAccount
// Выведите все требуемые результатыВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Введение в TypeScript
1Начало работы с TS
Что такое TypeScript?Зачем использовать TypeScript?Ваш первый код на TypeScriptПроцесс компиляции и ошибкиИтоги: Введение в TS4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация стрелочных функцийТип возвращаемого значения 'void'Необязательные параметры с '?'Значения параметров по умолчаниюТипизация Rest-параметровОпределение типов функцийИтоги: Создание типизированных функций2Основные типы
Базовые типы: str, num, booleanТип 'any': лазейкаТип 'unknown'Работа с 'null' и 'undef'Вывод типов в действииЯвные аннотации типовИтоги: Практика по основным типам5Типы: псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения ('|')Работа с типами объединенияЛитеральные типыТипы пересечения ('&')Комбинирование псевдонимов типовИтоги: продвинутые комбинации типов3Структуры данных: массивы и кортежи
Типизированные массивыМодификатор 'readonly' для массивовЧто такое кортеж?Объявление кортежей и доступ к нимДеструктуризация кортежейКортежи readonlyМногомерные типизированные массивыОператор spread с массивамиИтоги: массивы и кортежи6Типизация объектов и интерфейсы
Встроенные аннотации типов объектовПсевдонимы типов для объектовВведение в интерфейсыИнтерфейсы против псевдонимов типовНеобязательные и Readonly свойстваРасширение интерфейсов и типовДобавление методов в интерфейсыИтоги: Определение структуры объектовПотренируйтесь самостоятельно: Онлайн-компилятор JavaScript