Как ввести подсказки прокси-методы в машинописи? - PullRequest
0 голосов
/ 29 марта 2020

Я хотел бы сделать Прокси , чтобы добавить магию 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>({}, {});

, что делает иметь правильное понимание типов, но не позволяет мне определять мои «Модели» так, как я хочу.

Как я могу подсказывать моим моделям, чтобы они понимали прокси-типы?

...