[英]Typescript, cant load internal module
我实际上正在学习打字稿,而我面临内部模块的一些问题。
实际上,我有三个文件:
我在其中启动我的应用程序的index.ts
///<reference path='RouteManager.ts'/>
import RouteManager = RestifyRouting.RouteManager;
var myManager = new RouteManager();
myManager.init("superpath");
管理我的REST路由的RouteManager.ts
///<reference path='RouteParser.ts'/>
module RestifyRouting {
export class RouteManager {
routeParser:RouteParser;
constructor() {
}
public init(filePath) {
this.routeParser = new RouteParser();
this.routeParser.register("zfaf","callback");
console.log(filePath);
}
}
}
RouteParser,它必须解析一些字符串以获得一些信息
module RestifyRouting {
export class RouteParser {
constructor() {
}
public register(path, callback) {
console.log('super register');
}
}
}
我有一个创建我的.js和d.ts文件的gulp文件,除了index.js文件外,它工作得很好。 编译器告诉我,RestifyRouting(这是我的内部模块)未定义,我不知道为什么...
你能帮助我吗 ?
PS:每个文件都在同一个文件夹中,这只是一个学习应用程序。
谢谢前进
从TypeScript 1.5开始,模块语法与ES6模块语法保持一致,这也是我一直在使用的语法...
您可以删除对TypeScript模块的任何引用,而直接直接导出类
索引
import { RouteManager } from './RouteManager';
var myManager = new RouteManager();
myManager.init("superpath");
RouteManager.ts
import { RouteParser } from './RouteParser';
export class RouteManager {
routeParser:RouteParser;
constructor() {}
public init(filePath) {
this.routeParser = new RouteParser();
this.routeParser.register("zfaf","callback");
console.log(filePath);
}
}
RouteParser.ts
export class RouteParser {
constructor() {}
public register(path, callback) {
console.log('super register');
}
}
保持模块
如果您想继续使用内部模块,则必须确保导出模块以及模块内部的类。
// RouteManager.ts
export module RestifyRouting {
export class RouteManager{}
}
//index.ts
import { RestifyRouting } from './RouteManager';
//usage
var manager = new RestifyRouting.RouteManager();
请记住,您将无法将多个项目导入相同的名称。
// i.e.
import { RestifyRouting } from './RouteManager';
import { RestifyRouting } from './RouteParser';
注意import语句中的
{}
语法可以允许多次导入
{ Class1, Class2 }
如果导出默认值,则可以跳过{}
:
//Source (foo.ts):
export default class Foo{}
//Reference:
import Foo from './foo';
//usage:
class User {
foo: Foo;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.