Я хотел бы сделать Прокси , чтобы добавить магию c к моим классам машинописи.
У меня есть следующий код:
interface Attributes {
id: number;
name: string;
}
abstract class Model<T> {
public constructor(private attributes: T) {
// implement proxy magic here, so that
// attributes are accessible via getters
}
}
class Post extends Model<Attributes> {
get extraGetter() {
return 'koko';
}
}
Сейчас я хотел бы, чтобы подсказка типа понимала мой прокси, чтобы вызов
const post = new Post({ id: 1, name: 'first' });
post.id;
был полностью понят. Однако в настоящее время понятен только метод extraGetter
.
Чтобы проиллюстрировать это, я могу достичь почти того, чего хочу, путем непосредственного создания прокси:
const proxy = new Proxy<Attributes & Child>({}, {});
, что делает иметь правильное понимание типов, но не позволяет мне определять мои «Модели» так, как я хочу.
Как я могу подсказывать моим моделям, чтобы они понимали прокси-типы?