Экспорт непрозрачного класса

В потоке я могу сделать следующее:

interface IC {
    get value(): { x: number };
}

class C implements IC {
    value = { x: 7, y: 42 };

    doSmth() {
        console.log(this.value.x, this.value.y);
    }
}

export opaque type CC: IC = C;

Но я хочу экспортировать это как Cне CC:

export opaque type C: IC = C;

но я получаю ошибку

13: export opaque type C: IC = C;
                       ^ Cannot declare `C` [1] because the name is already bound.
References:
5: class C implements IC {
         ^ [1]

Как я могу исправить это, чтобы экспортировать класс как непрозрачный тип, соответствующий интерфейсу без переименования?

Также мне нужен конструктор, чтобы я мог делать new C,

0 ответов

Другие вопросы по тегам