在Typescript中使用非模块化脚本

时间:2014-06-28 11:02:57

标签: requirejs typescript amd

我在Visual Studio 2013中使用的是Typescript AMD和Requirejs,我想在我的Typescript类中使用非模块化脚本。 我怎样才能做到这一点:

define(["require", "exports", 'slickgrid'], function(require, exports, slickgrid){
    ...
});

我无法使用以下语法:

import slickgrid = require('slickgrid');
export class myClass {
    ...
}

当我这样做时,我得到2个错误

Unable to resolve external module '"slickgrid"
Module cannot be aliased to a non-module type.

Config看起来像这样

require.config({
    baseUrl: 'scripts',
    paths: {
        jquery: 'jquery-1.10.2',
        jqueryui: 'jquery-ui-1.10.4',
        dragevent: 'jquery.event.drag',
        slickcore: 'SlickGrid/slick.core',
        slickgrid: 'SlickGrid/slick.grid',
    },
    shim: {
        jquery: { exports: '$' },
        jqueryui: ['jquery'],
        dragevent: ['jquery'],
        slickcore: ['jqueryui'],
        slickgrid: {
            deps: ['slickcore', 'dragevent'],
            exports: 'Slick'
        },
    }
});

1 个答案:

答案 0 :(得分:2)

使用此定义文件:https://github.com/borisyankov/DefinitelyTyped/blob/master/slickgrid/SlickGrid.d.ts

在一些.d.ts文件中添加以下内容,告诉typescript你的requirejs配置:

declare module 'slickgrid'{
    export = Slick 
}

这样你就可以:

import slickgrid = require('slickgrid');