私が作成したいくつかのカスタムオブジェクト用のIntellisenseファイルを作成しましたが、メソッドが1つの型しか返すことができない場合は、すべて正常に動作しています。インテリセンスファイルが含まれている場合は、私の質問を説明するための例としてVisual StudioでJavascript Intellisenseに複数の戻り値の型を指定することはできますか?
:
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()メソッドは、フレッド・オブジェクトを返すことを知っている。すなわち:
しかし私の方法のいくつかは、例えばDoWhatFredDoes()メソッドは、ボブやフレッドオブジェクトを返すことができ、複数の戻り値の型を持つことができます。これを指定するintellisenseファイルにはとにかくありますか?
私はこれにそれを修正しようとしているが、それは動作しません:
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のドキュメントを見て持っていたので、多分それだけだ複数の戻りタイプの言及がありませんありえない?
関数のシグネチャは、戻り値の型だけで決して異なることはありません。あなたの関数がどのように複数の型を返すことができるかわかりません。最も近いのは、 'Fred'と' Bob 'が関数が返すように定義されている共通の祖先型を共有している場合です。しかし、その場合でも、祖先型の1つの型しか返していません。 – gmiley
@gmileyたとえば、メソッドが1に設定されているとFredオブジェクトを返し、それ以外の場合はBobオブジェクトを返すパラメータがあれば、関数は別の型を返すことができます。 – ChrisA
はい、それはプライマリシグネチャの変更で、パラメータです。 'SomeFunction()'が 'string'を返す場合、' SomeFunction() 'に' int'を返すことはできませんが、 'SomeFunction(int) ) ''を返します。 'SomeFunction(int)'は 'int'を返すようにすでに定義されているので、' string'を返すことはできません。 – gmiley