0

我已经为我创建的一些自定义对象创建了一个智能感知文件,如果这些方法只能返回一个类型,它就可以正常工作。

作为一个例子来说明我的问题,如果智能感知文件包含:

var Bob = function() {
    /// <signature>
    /// <returns type="Bob"/>
    /// </signature>
}

var Fred = function() {
    /// <signature>
    /// <returns type="Fred"/>
    /// </signature>
}

Bob.prototype.DoWhatBobDoes = function() {
    /// <signature>
    /// <returns type="Bob"/>
    /// </signature>
}

Fred.prototype.DoWhatFredDoes = function() {
    /// <signature>
    /// <returns type="Fred"/>
    /// </signature>
}

然后在 Visual Studio 中我可以做到这一点,即它知道 DoWhatFredDoes() 方法返回一个 Fred 对象:

智能感知

但是我的一些方法可以有多种返回类型,例如 DoWhatFredDoes() 方法可以返回 Bob 或 Fred 对象。无论如何在智能感知文件中指定这个?

我已经尝试将其修改为此,但它不起作用:

var Bob = function() {
    /// <signature>
    /// <returns type="Bob"/>
    /// </signature>
}

var Fred = function() {
    /// <signature>
    /// <returns type="Fred"/>
    /// </signature>
}

Bob.prototype.DoWhatBobDoes = function() {
    /// <signature>
    /// <returns type="Bob"/>
    /// </signature>
}

Fred.prototype.DoWhatFredDoes = function() {
    /// <signature>
    /// <returns type="Fred|Bob"/>
    /// </signature>
}

我查看了https://msdn.microsoft.com/en-us/library/hh542719.aspx上的文档,并没有提到多种返回类型,所以也许这是不可能的?

4

1 回答 1

1

函数签名不能仅因返回类型而异。例如,如果您有一个定义为SomeFunction()返回 type的函数,则int您不能也有SomeFunction()返回 type的函数string。但是,如果函数的参数数量或类型不同,则这些函数定义中的每一个都可以具有不同的返回类型。例如:如果SomeFunction(int)返回 an int,您还可以定义SomeFunction(string)哪个可以返回 a string,但是一旦定义SomeFunction(string)返回 a string,您也不能将其定义为返回 an int

于 2016-04-20T09:27:37.023 回答