我对TypeScript比较陌生,越是读有关模块和命名空间的内容,就越感到困惑。我应该选择模块还是命名空间?两者都用吗?求助!
我有一些已有的JavaScript(.js)文件,现在要转换成TypeScript。其中一个.js文件包含一些通用函数,另一个.js文件包含一些特定于过滤器的函数。
我现在希望用TypeScript更好地组织这些函数,就像我通常在C#中做的那样。
这种用法正确吗?还是应该以其他方式来组织代码?
我没有使用模块,我应该使用吗?(如何使用?)
Company.ts
namespace Company {
// nothing yet, but in future it might.
}
Company.Project.ts
namespace Company.Project {
import Company; // like this?
let myVar : string = "something";
export function handyGeneralFunction1(foo, bar) {
// ...
}
export function handyGeneralFunction2(foo, bar, foo, bar) {
// ...
doInternalCalc();
// ...
}
export function handyGeneralFunction3() {
// ...
}
function doInternalCalc() {
// ...
}
}
Company.Project.Filter.ts
namespace Company.Project.Filter {
import Project = Company.Project; // like this?
export function initializeFilter() {
// ...
initMetadata();
// ...
}
function initMetadata() {
// ...
Project.handyGeneralFunction3();
let helper : FilterHelper = new FilterHelper("aaaa,bbbb");
let res:string[] = helper.parseData();
}
function foo() {
// ...
let x :string = Project.myVar + " else"; // can I use myVar here?
}
// a class in the namespace
export class FilterHelper {
data: string;
constructor(theData: string) {
this.data = theData;
}
parseData() : string[] {
// ...
return new Array<string>();
}
}
}