我开始在ASP.Net MVC项目中使用TypeScript。 我的文件结构如下所示:
Project
|-ts
| |- Common
| | |-AppSettings.ts
| |-Components
| | |-DeleteModal.ts
AppSetttings.ts 包含一个带有一些表示全局应用程序常量的静态属性的类:
namespace Ls.Common {
export class AppSettings {
public static readonly DeleteMethod = 'DELETE';
}
}
DeleteModal.ts 使用Ls.Common.AppSettings.DeleteMethod值作为发出ajax请求的类型。
$.ajax({
type: Ls.Common.AppSettings.DeleteMethod,
url: this.config.deleteUrl,
async: true
})
.done((data) => {
// Display result
});
Visual Studio在DeleteModal.ts中显示以下错误:
属性' AppSettings'类型' typeof Common'。
上不存在使用gulp构建TS文件并创建预期输出。 如何让Visual Studio了解其他TS文件中的类型(在同一项目中)?
答案 0 :(得分:1)
似乎Visual Studio未在分析中包含该文件。由于gulp有效,因此gulp可能正在使用正确的tsconfig.json
而Visual Studio则不然。
.csproj
中经常包含打字稿配置,默认情况下该配置会覆盖tsconfig.json
中的内容。
请检查上面提到的不同位置是否有不同的配置。 csproj
中的那个看起来像这样
<PropertyGroup>
<TypeScriptModuleKind>amd</TypeScriptModuleKind>
<TypeScriptNoImplicitAny>True</TypeScriptNoImplicitAny>
....
</PropertyGroup>
答案 1 :(得分:0)
在 DeleteModal.ts 中添加引用解决了问题:
/// <reference path="../common/appsettings.ts" />