繁体   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