在打字稿中引用外部模块 - 错误TS2304:找不到名称' general'

时间:2015-04-28 10:51:12

标签: typescript amd

我准备了这两个文件:

第一个是general.d.ts文件

interface IgeneralStatic {
    General: {
        Langs: any;
    };
}

declare var general: IgeneralStatic;

declare module 'general' {
    export = general;
}

第二个只是something.ts文件,我试图导入文件别名:

/// <reference path="general.d.ts" />

import general = require('general');

export class SpecificLangs extends general.General.Langs
  ...
}

当我尝试编译它时,我收到了这个错误:

error TS2304: Cannot find name 'general'

这样做的原因是我不知道我的模块在哪里,而且我无法导入它用于打字稿用法。它在requirejs方面作为包解析。所以没有办法使用import引用原始的general.ts文件。

1 个答案:

答案 0 :(得分:1)

您的定义有效,因为您可以导入它......

例如,我可以像这样引用Langs

var x = general.General.Langs;

但是,您尚未声明Langs是一个类,因此您无法将其扩展为一个类。

如果 以允许您扩展它的方式实现,则将其声明为类将允许将其用作基类(简化示例以演示使用类工作) :

declare module 'general' {
    export module General {
        export class Langs {


        }
    }
}