【问题标题】:What does the below code segment mean in typescript?下面的代码段在打字稿中是什么意思?
【发布时间】:2019-12-06 06:17:49
【问题描述】:

我在反射元数据库的声明文件中看到了下面的代码段。这是否意味着函数元数据应该返回一个具有 2 个函数的对象?请帮助解释它的用法并分享如何使用它的示例。谢谢。

function metadata(metadataKey: any, metadataValue: any): {
            (target: Function): void;
            (target: Object, propertyKey: string | symbol): void;
};

【问题讨论】:

    标签: typescript typescript-decorator


    【解决方案1】:

    函数被声明为返回两个函数签名——这是由于函数重载造成的。

    当您使用两个 args 调用 metadata 时,您将能够调用返回的 2 种方式之一:

    (target: Function)

    x.metadata(1, 1)(function() {});
    

    (target: Object, propertyKey: string | symbol)

    x.metadata(1, 1)({}, '')
    

    这两个函数签名允许您使用一些不同的参数调用单个实现。

    【讨论】:

      猜你喜欢
      • 2019-11-15
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 2021-04-21
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多