[英]TypeScript namespace could not be found
我正在用打字稿写一些代码。 该代码本身是一个有角度的2应用程序,但问题是关于打字稿本身。 我有一些文件包含我的模型,例如一个波纹管:
module Models {
export class Customer {
public Id: number;
public Name: string;
public Orders: Order[];
public CustomerPhones: CustomerPhone[];
}
}
和一些这样的api客户端服务:
import { Inject, Injectable } from '@angular/core';
import { Http } from '@angular/http';
module Api {
@Injectable()
export class RestaurantMenuApiController {
constructor(private http: Http, @Inject('BASE_URL') private baseUrl: string) {
}
public getAllMenus = ( context:any, fieldNameToFill: string, beforeFieldFilling:(data:Models.RestaurantMenu[])=>void, afterFieldFilling:(data:Models.RestaurantMenu[])=>void, failureHandler:()=>void, errorHandler:(error:any)=>void) => {
var promise = this.http.get(this.baseUrl + 'api/RestaurantMenuApi/getAllMenus');
promise.subscribe(result => {
if (result.ok) {
var data = <Models.RestaurantMenu[]>result.json();
if (beforeFieldFilling) {
beforeFieldFilling(data);
}
if(fieldNameToFill && fieldNameToFill != '')
context[fieldNameToFill] = data;
if (afterFieldFilling) {
afterFieldFilling(data);
}
}
else{
failureHandler();
}
}, error => {
console.error("api call error: ",error);
errorHandler(error);
});
}
}
}
在这些之后,当我在其他文件中使用它们时,表达式Api.RestaurantMenuApiController
表示找不到命名空间Api,而代码Models.Customer
可以正常工作。
我的错在哪里 我使用了两个都没有导入的情况,因为无法导入未导出的名称空间。
在这些之后,当我在其他文件中使用它们时,表达式Api.RestaurantMenuApiController表示找不到命名空间Api,而代码Models.Customer可以正常工作。
带有Models
的文件是全局文件,而由于import
语句,带有Api
的文件是模块。
不要使用全局变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.