簡體   English   中英

打字稿,無法加載內部模塊

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM