【问题标题】:Typescript: Cannot find name 'Proxy'打字稿:找不到名称“代理”
【发布时间】:2018-11-28 14:51:55
【问题描述】:

我需要声明一个 Proxy 类型的新变量,它来自 ES6 规范:

myProxy: Proxy;

但我得到下一个错误:

找不到名称“代理”。

我该如何解决?

【问题讨论】:

    标签: angular typescript ecmascript-6


    【解决方案1】:

    假设您将目标设置为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 的类型将与目标对象的类型相同。

    【讨论】:

      猜你喜欢
      • 2018-01-25
      • 2016-09-15
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 2017-06-18
      • 1970-01-01
      • 2020-06-25
      相关资源
      最近更新 更多