Let's say I have the javascript function below:
function (msg) {
var divForResult = document.getElementById("test");
if (typeof (msg) == "object")
{
divForResult.innerHTML = "Result: <b>" + msg.Message + "</b>";
}
else {
divForResult.innerHTML = "Result: <b>" + msg + "</b>";
}
}
I know that if the msg
variable is an object, it's as Exception, so I print the Message property. If not, the msg
is a string, and I print the variable itself. My question is how do I let Visual Studio 2010 JavaScript IntelliSense "know" the type of object msg is, so that I'll get the correct properties/functions for the object type in a situation such as this?
Actually it's not limited to local variables. You can help VS by using xml comments like this:
function foo(message) {
/// <param name="message" type="String"></param>
message. //ctr+space here
}
It is not exactly what you are asking for, but it works great when you are accepting argument of one type only.
Unfortunately, Visual Studio's "pseudo-execution" of JavaScript in order to provide better Intellisense support is still not comprehensive enough.
For example, I wrote this little function:
var foo = function(obj) {
if (typeof obj === "string") {
// presumably Intellisense should know obj is a string
// in this compound statement but it doesn't.
// try "obj." here
}
if ((typeof obj === "object") && (obj.constructor === Date)) {
// presumably Intellisense should know obj is a Date
// in this compound statement but it doesn't.
// try "obj." here
}
};
And if you try it out VS2010 doesn't notice that in the two clauses I've tried to limit the type of the passed-in object and that therefore it could provide better suggestions. So, it seems that Intellisense is pretty limited to local variables.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With