A class can implement an interface to promise it has specific methods.

Implementing Interfaces

implements.ts
interface Formatter {
    format(value: number): string;
}

class PercentFormatter implements Formatter {
    format(value: number): string {
        return `${value}%`;
    }
}

const value: number = ;
const formatter: Formatter = new PercentFormatter();
const text: string = formatter.format(value);

console.log(text);
interface Formatter {
    format(value: number): string;
}

class PercentFormatter implements Formatter {
    format(value: number): string {
        return `${value}%`;
    }
}

const value: number = ;
const formatter: Formatter = new PercentFormatter();
const text: string = formatter.format(value);

console.log(text);
interface Formatter {
    format(value: number): string;
}

class PercentFormatter implements Formatter {
    format(value: number): string {
        return `${value}%`;
    }
}

const value: number = ;
const formatter: Formatter = new PercentFormatter();
const text: string = formatter.format(value);

console.log(text);
implements `implements` asks TypeScript to check that a class satisfies an interface.