Visual Studio的Javascript Intellisense可以给出一个暗示这个'这个'关键词?

时间:2015-10-25 14:36:55

标签: javascript visual-studio-2015 javascript-intellisense

我使用Phaser framework在Visual Studio(2015,社区)中创建游戏。

虽然我可以成功地为小型项目获取Intellisense,但是当我尝试切换到面向对象的JavaScript时,我失去了Intellisense。

boot.js

/// <reference path="../lib/phaser-2.4.4.js" />
var BasicGame = {
};

BasicGame.Boot = function (game) {
    // This gives me Intellisense as expected:
    game.input.maxPointers = 1;
};

BasicGame.Boot.prototype = {
    init: function () {
    },

    preload: function () {
    },

    create: function () {
        // This is valid, but I don't get Intellisense.
        // Can I help VS understand what type 'this' is?
        this.state.start('Preloader');
    }
};

我可以在某种程度上协助Visual Studio(2015 / Code /更高版本),以便它了解&#39;这个&#39;关键字是,在create方法的情况下?

其他相关文件,适用于那些不熟悉Phaser框架OO模板的人:

的index.html

<!DOCTYPE html>
<html>
<head>
    <title>HTML5 Shoot 'em Up in an Afternoon</title>
    <meta charset="utf-8" />
    <link rel="shortcut icon" href="favicon.ico" />
    <style type="text/css">
        body {
            background: #333;
            margin: 0;
        }
    </style>
    <script src="lib/phaser-2.4.4.min.js"></script>
    <script src="src/boot.js"></script>
    <script src="src/preloader.js"></script>
    <script src="src/mainMenu.js"></script>
    <script src="src/game.js"></script>
    <script src="src/app.js"></script>
</head>
<body>
    <div id="gameContainer"></div>
</body>
</html>
为简洁起见,排除了preloader.js,mainMenu.js和game.js。它们包含的设置与上面的boot.js非常相似。

app.js

window.onload = function () {
    var game = new Phaser.Game(800, 600, Phaser.AUTO, 'gameContainer');

    game.state.add('Boot', BasicGame.Boot);
    game.state.add('Preloader', BasicGame.Preloader);
    game.state.add('MainMenu', BasicGame.MainMenu);
    game.state.add('Game', BasicGame.Game);

    game.state.start('Boot');
};

1 个答案:

答案 0 :(得分:0)

为了它的价值,我在一个多月前决定开始研究TypeScript而不是vanilla JavaScript。

这导致了我想要的Intellisense,并且编程方式对我来说更有效率。

感谢Claies对我的问题的评论,当我看到我可以学习TypeScript并从框架中获得我想要的内容时,这让我更容易接受。

保持问题公开,以防最终成为最初要求的方式。