Задача
Согласно моему исследованию, интерфейсы машинописного текста существуют только во время компиляции и не имеют соответствующей структуры в JS, в то время как класс делает.
Вот почему вы не можете явно реализовать интерфейсы, как вы можете сделать это на других языках, таких как, например, c #.
рассмотрим этот пример:
export interface FooableBar {
foo();
}
export class Bar implements FooableBar {
foo(){}
}
Конечно, если бы я хотел иметь другую реализацию foo()
для Bar
, я мог бы просто переименовать ее.
Но что, если Bar
должен был реализовать второй интерфейс, подобный этому:
export interface SpecialFooable {
foo();
}
Именно здесь явные реализации отлично справились бы с работой. К сожалению, это должно быть сделано с именами.
Вопрос
Обычно спрашивают: Каков наилучший способ сделать это в TypeScript?
или Какое соглашение о присвоении имен больше всего соответствует понятиям TypeScript?
Например, я обнаружил, что обычно используют префикс для библиотек или сред, таких как angular. Где можно найти этот интерфейс:
export interface OnInit {
ngOnInit();
}
Префикс
1033 * действительно дает возможность просто реализовать onInit()
наш собственный, но в моем случае добавление префикса app
не решит проблему вообще.