我需要声明一个类型为Proxy的新变量,该变量来自ES6规范:
myProxy: Proxy;
但是我遇到下一个错误:
找不到名称“代理”。
我该如何解决?
答案 0 :(得分:2)
假设您已将目标设置为es2015
或使用es2015
选项包含了lib
的库,则可以创建一个Proxy
。诀窍是Proxy
不是类型,而是构造函数。来自es2015 lib:
interface ProxyConstructor {
revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };
new <T extends object>(target: T, handler: ProxyHandler<T>): T;
}
declare var Proxy: ProxyConstructor;
因此,要创建代理,您需要调用构造函数:
let foo = new Proxy({ value: 0 }, {
get: (v) => v.value * 2
});
foo
的类型将与目标对象的类型相同。