以下代码段在打字稿中意味着什么?

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

function metadata(metadataKey: any,metadataValue: any): {
            (target: Function): void;
            (target: Object,propertyKey: string | symbol): void;
};
maoyink 回答:以下代码段在打字稿中意味着什么?

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

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

通过(target: Function)

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

(target: Object,propertyKey: string | symbol)

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

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

本文链接:https://www.f2er.com/2965047.html

大家都在问