Что делает implements в TypeScript?
В TypeScript, ключевое слово implements используется для того, чтобы заставить класс соответствовать интерфейсу.
Это означает, что класс должен реализовать все свойства и методы, описанные в интерфейсе. Иначе TypeScript выдаст ошибку на этапе компиляции.
Синтаксис
interface IAnimal {
name: string;
makeSound(): void;
}
class Dog implements IAnimal {
name: string;
constructor(name: string) {
this.name = name;
}
makeSound() {
console.log("Woof!");
}
}
Что происходит?
- Класс
Dog
обязан реализовать все свойства и методы интерфейсаIAnimal
. - Если хотя бы одно будет отсутствовать — TypeScript покажет ошибку.
Пример ошибки
interface Person {
name: string;
age: number;
}
class User implements Person {
name: string;
// Ошибка: Property 'age' is missing
}
implements с несколькими интерфейсами
Можно реализовать несколько интерфейсов через запятую:
interface A {
a(): void;
}
interface B {
b(): void;
}
class C implements A, B {
a() {
console.log("A");
}
b() {
console.log("B");
}
}
Зачем использовать implements?
- Для контроля структуры класса
- Для документирования API: видно, что класс должен поддерживать
- Для гарантий соответствия архитектуре
- Для модульности и повторного использования: один интерфейс — много реализаций
Важно:
implements
работает только на уровне типов. В скомпилированном JavaScript нет интерфейсов.