【发布时间】:2018-11-28 14:51:55
【问题描述】:
我需要声明一个 Proxy 类型的新变量,它来自 ES6 规范:
myProxy: Proxy;
但我得到下一个错误:
找不到名称“代理”。
我该如何解决?
【问题讨论】:
标签: angular typescript ecmascript-6
我需要声明一个 Proxy 类型的新变量,它来自 ES6 规范:
myProxy: Proxy;
但我得到下一个错误:
找不到名称“代理”。
我该如何解决?
【问题讨论】:
标签: angular typescript ecmascript-6
假设您将目标设置为es2015 或使用lib 选项包含es2015 的库,您可以创建Proxy。诀窍是Proxy 不是类型,而是构造函数。来自 es2015 库:
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 的类型将与目标对象的类型相同。
【讨论】: