Visual studio 2013 visual studio中对象属性的Typescript intellisense未显示

Visual studio 2013 visual studio中对象属性的Typescript intellisense未显示,visual-studio-2013,typescript,intellisense,Visual Studio 2013,Typescript,Intellisense,在我的typescript文件中,我有以下代码: var Application = Application || {}; Application.Constants = angular.module("application.constants", []); Application.Services = angular.module("application.services", []); Application.Controllers = angular.module("applicati

在我的typescript文件中,我有以下代码:

var Application = Application || {};

Application.Constants = angular.module("application.constants", []);
Application.Services = angular.module("application.services", []);
Application.Controllers = angular.module("application.controllers", []);
Application.Filters = angular.module("application.filters", []);
Application.Directives = angular.module("application.directives", []);


angular.module("application", ["application.filters", "application.services", "application.directives", "application.constants", "application.controllers"]);
var player = {};
player.intelligence = 10;
player.wisdom = 30;

if(desiredClass === "Barbarian") {
    player.strenght = 100;
} else {
    player.strength = 20;
}
Intellisense没有出现,如您所见:

但在实际生成的javascript中,这是相同的。。。我从visual studio获得了intellisense,正如您所看到的:

VisualStudioTypeScript有什么原因不能解决这个问题吗

我真的必须像这样创建自己的类型才能获得对象属性的intellisense吗


TypeScript不会从赋值推断类型。想一想为什么,考虑下面的代码:

var Application = Application || {};

Application.Constants = angular.module("application.constants", []);
Application.Services = angular.module("application.services", []);
Application.Controllers = angular.module("application.controllers", []);
Application.Filters = angular.module("application.filters", []);
Application.Directives = angular.module("application.directives", []);


angular.module("application", ["application.filters", "application.services", "application.directives", "application.constants", "application.controllers"]);
var player = {};
player.intelligence = 10;
player.wisdom = 30;

if(desiredClass === "Barbarian") {
    player.strenght = 100;
} else {
    player.strength = 20;
}

尽管它是程序中最常见的打字错误之一,但此处无法发出错误。

TypeScript不会从赋值推断类型。想一想为什么,考虑下面的代码:

var Application = Application || {};

Application.Constants = angular.module("application.constants", []);
Application.Services = angular.module("application.services", []);
Application.Controllers = angular.module("application.controllers", []);
Application.Filters = angular.module("application.filters", []);
Application.Directives = angular.module("application.directives", []);


angular.module("application", ["application.filters", "application.services", "application.directives", "application.constants", "application.controllers"]);
var player = {};
player.intelligence = 10;
player.wisdom = 30;

if(desiredClass === "Barbarian") {
    player.strenght = 100;
} else {
    player.strength = 20;
}

尽管这是程序中最常见的打字错误之一,但在这里无法发出错误。

因此,我在上一张图片中所做的是正确的吗,那么?我不明白你的例子是如何解释为什么TypeScript不能从赋值中推断类型的。那么,我在上一张图片中所做的是正确的吗?我不明白你的例子是如何解释为什么TypeScript不能从赋值中推断类型的。