Typescript在命名空间中引用外部模块

时间:2017-11-15 08:35:45

标签: typescript momentjs typescript-typings

我正在尝试在我的命名空间“ company.controllers ”中引用外部模块“时刻

namespace company.controllers {    
    import { moment } from 'moment';

    'use strict'

    export class WidgetAdminDailyStatisticController extends Controller<company.data.AdminDailyStatisticViewModel> {
        customRepository: company.data.CustomRepository;
        searchDate: Date;

        static $inject: Array<string> = [
            'CustomRepository'
        ];
        constructor(
            customRepository: company.data.CustomRepository
        ) {
            super();

            this.customRepository = customRepository;
        }

        initialize(): void {
            this.searchDate = new Date();

            //let a: moment = new moment();


        }
    }
}

我收到“命名空间中的导入声明无法引用模块

如何在我的打字稿中导入时刻和使用?

1 个答案:

答案 0 :(得分:1)

您可以在命名空间之外导入它:

import { moment } from 'moment';

namespace company.controllers {
    // ...
}

...但您无法在非模块脚本中导入模块。如果您的命名空间不在模块中,则无法实现。解决方案是使用时刻作为全局变量,并为该全局变量查找(或写入)另一个定义文件。