[英]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.