Asp.net mvc 带有npm和节点模块包的Visual Studio Typescript引用问题
因此,我在ASP NET MVC项目中使用typescript,typescript管理前端JS和angularJs 我有一个viewmodels文件夹,其中包含许多Asp.net mvc 带有npm和节点模块包的Visual Studio Typescript引用问题,asp.net-mvc,typescript,Asp.net Mvc,Typescript,因此,我在ASP NET MVC项目中使用typescript,typescript管理前端JS和angularJs 我有一个viewmodels文件夹,其中包含许多.ts文件。所以我尝试将它们分开,并将其托管在私有npm包下 接下来,我使用npm将它们下载到node\u modules文件夹中,但是这些typescript视图模型的引用不再起作用 假设所有ts位于同一命名空间下。只有一部分是本地typescript文件夹,另一部分是节点模块文件夹 问题出现后我采取的行动 项目包括/node_m
.ts
文件。所以我尝试将它们分开,并将其托管在私有npm包下
接下来,我使用npm将它们下载到node\u modules
文件夹中,但是这些typescript视图模型的引用不再起作用
假设所有ts位于同一命名空间下。只有一部分是本地typescript文件夹,另一部分是节点模块文件夹
问题出现后我采取的行动
/// <reference path="node_modules/@privatescope/viewmodels/CurrencyViewModel.ts" />
正在寻找建议,谢谢。您能在问题中添加一个视图模型声明的示例吗?@MattMcCutchen只需添加一个,看一看。谢谢如果您的所有文件都是全局文件(顶层没有ES6
导入
或导出
),那么
应该可以工作。我使用类似的东西通过引用路径链接ts/
,这可能是原因吗`我在上设置了一个项目,从本地目录到CurrencyViewModel
的引用正在VS代码中成功解析(当然,缺少一些其他类)。您可以尝试在VS中加载此项目,如果它有效,请尝试找出它与原始项目之间的区别。
var currencyViewModel = require("node_modules/@privatescope/viewmodels/CurrencyViewModel.ts")
// error here
export class CurrencyRepository extends Repository<currencyViewModel> implements IRepository<currencyViewModel>
{
"compileOnSave": true,
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"es5",
"scripthost",
"es6"
],
"module": "commonjs",
"noImplicitAny": true,
//"strictNullChecks": true,
"noEmitOnError": false,
"removeComments": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"sourceMap": true,
},
"exclude": [
"node_modules",
"obj",
"bin"
]
}
// viewmodel in node_module
namespace test.data {
'use strict';
export class CurrencyViewModel extends CurrencyGenViewModel {
}
}
//base class also in mode_module
'use strict';
namespace test.data {
export interface IGenCurrencyViewModel {
CurrencyRates: CurrencyRateGenViewModel[];
Id: number;
Name: string;
CurrencyCode: string;
}
export class CurrencyGenViewModel implements IGenCurrencyViewModel, ICurrency {
public CurrencyRates: CurrencyRateGenViewModel[];
public Id: number;
public Name: string;
public CurrencyCode: string;
public static FIELD_CurrencyRates: string = 'CurrencyRates';
public static FIELD_Id: string = 'Id';
public static FIELD_Name: string = 'Name';
public static FIELD_CurrencyCode: string = 'CurrencyCode';
constructor() {
}
public CloneFromModel(inputModel : Currency) {
//CurrencyRateViewModel[]
this.Id = inputModel.Id;
this.Name = inputModel.Name;
this.CurrencyCode = inputModel.CurrencyCode;
}
public CloneFromViewModel(inputViewModel : CurrencyViewModel) {
if (inputViewModel.CurrencyRates != null) { this.CurrencyRates = inputViewModel.CurrencyRates; }
this.Id = inputViewModel.Id;
this.Name = inputViewModel.Name;
this.CurrencyCode = inputViewModel.CurrencyCode;
}
public GetCurrency() : Currency {
var model : Currency = {
//CurrencyRateViewModel[]
Id: this.Id,
Name: this.Name,
CurrencyCode: this.CurrencyCode,
};
return model;
}
}
}