我有一个关于visualstudio中intellisense的问题。
例如,我有这样的:
var pickRandomWord = function (words) {
return words[Math.floor(Math.random() * words.length )];
};
console.log(pickRandomWord(randomWords));
然后在返回函数中,我看不到单词的长度属性。如果我在视觉工作室2015字。出现一条消息:
intellisense无法确定的准确完成列表此表达式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将足够聪明,可以看到"好吧,我将收到一个基于下面实现的数组"。重要提示:Intellisense并不总是准确的并且显示正确的属性。你可以试试Typescript-Intellisense非常适合它(显然是因为类型(。