Как передать переменную экземпляра в аргументы декоратора машинописи?

Как реализовать декоратор машинописи? хороший пример того, как использовать декоратор в машинописи.

Учитывая приведенный ниже случай,

class MyClass {
    @enumerable(false)
    get prop() {
        return true;
    }

    @property({required: true}) //here pass constant is no issue
    public startDateString:string;

    @property({afterDate: this.startDateString}) //how to pass startDateString here?
    public endDateString:string;
}

function enumerable(isEnumerable: boolean) {
    return (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => {
        descriptor.enumerable = isEnumerable;
        return descriptor;
    };
}

Я попробовал все, но, кажется, у меня нет возможности пройтиstartDateString в аргумент декоратора.startDateString может быть переменной, функцией и ссылкой.

Ответы на вопрос(1)

Ваш ответ на вопрос