Я нахожусь в ситуации, когда я хочу использовать Proxy
, чтобы "распределить нагрузку" между списками классов.
Наивный пример того, что я пытаюсь сделать, заключается в следующем:
class Foo {
constructor(private msg: string) {}
foo() {
console.log(this.msg);
}
}
// @ts-ignore
const proxy: Foo = new Proxy([new Foo('foo'), new Foo('bar')], {
get: (o, key) => {
const client = o[Math.floor(Math.random() * o.length)];
console.log(client, key);
return client[key];
},
});
proxy.foo();
Это "работает".Проблема в том, что я использую машинопись.И, благодаря определению типа Proxy
, мы не можем сделать что-то вроде
new Proxy<Foo>([new Foo(), new Foo()], handler)
, так как это приводит к следующей ошибке:
Аргумент типа 'Foo []'нельзя назначить параметру типа 'Foo'.
Есть ли способ добиться этого;без потери проверки типов?