Menu
Coddy logo textTech

Добавление методов в интерфейсы

Часть раздела Введение в 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, который не принимает параметров и возвращает строку. Фактическая реализация может различаться у разных объектов, но сигнатура должна в точности совпадать.

challenge icon

Задание

Легко

Создай interface с именем Calculator со следующими свойствами и methods:

  • brand типа string
  • model типа string
  • isScientific типа boolean
  • метод add, который принимает два параметра типа number и возвращает значение типа number
  • метод getInfo, который не принимает параметров и возвращает значение типа string

Создай interface с именем BankAccount со следующими свойствами и methods:

  • accountNumber типа string
  • balance типа number
  • isActive типа boolean
  • метод deposit, который принимает параметр типа number и возвращает void
  • метод getBalance, который не принимает параметров и возвращает значение типа number

Используя созданные interface, создай следующие variable:

  • Создай variable с именем myCalculator типа Calculator со значением brand "Casio", значением model "FX-991EX", значением isScientific true, методом add, который возвращает сумму двух параметров, и методом getInfo, который возвращает "[brand] [model]"
  • Создай variable с именем savingsAccount типа BankAccount со значением accountNumber "SAV-12345", значением balance 1500, значением isActive true, методом 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
// Выведите все требуемые результаты
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в TypeScript

Потренируйтесь самостоятельно: Онлайн-компилятор JavaScript