visual studio 2015 javascript 智能感知

intellisense in visual studio 2015 javascript

我对 visual studio 中的智能感知有疑问。

例如我有这个:

var pickRandomWord = function (words) {
    return words[Math.floor(Math.random() * words.length )];
};

console.log(pickRandomWord(randomWords));

然后在 return 函数中我看不到单词的长度属性。如果我输入 visual studio 2015 words.There 会出现一条消息:

intellisense was unable to determine an accurate completion list for this expression javascript

但是如果我这样做:

var pickRandomWord = function (words) {
    return words[Math.floor(Math.random() * words.length )];
};

var randomWords = ["Planet", "Worm", "Flower", "Computer"];

console.log(pickRandomWord(randomWords));

那么智能感知就可以正常工作了。然后我看到长度 属性。这是为什么?

谢谢

因为 pickRandomWord 函数不知道它将接收什么类型,所以它无法预测 'length' 属性.

至于你的第二个例子,当你准备数组 randomWords 并用它调用你的函数时,VS 将足够聪明地看到 "Ok, I will receive an array based on the implementation below."。 重要提示:Intellisense 并不总是准确并显示正确的属性。您可以尝试 Typescript - Intellisense 非常适合它(显然是由于类型)。