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

Referencing external module in typescript - error TS2304: Cannot find name 'general'

我准备了这两个文件:

第一个是 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 端被解析为包。所以没有办法引用,使用导入,原始 general.ts 文件。

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

例如,我可以这样引用 Langs

var x = general.General.Langs;

但是,您还没有声明 Langs 是一个 class,所以您不能像它是一个一样扩展它。

如果它以允许您扩展它的方式实现的,将它声明为class将允许它用作基础class(证明使用 class 有效的简化示例):

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


        }
    }
}