打字稿找不到定义



我有以下文件结构:

+ src
|  test.ts
|  z_module.d.ts
tsconfig.json

test.ts

// does nothing?
/// <reference path="./z_module.d.ts" />
// can't now write:
var a: zzrm.zzrmObject;
// have to use:    
import * as zzrm from 'zzrm';
var a: zzrm.zzrmObject;

z_module.d.ts

declare module "zzrm" {
  export interface zzrmObject {id: string}
}

我试图减少问题,但很可能错误地减少了它。 问题最初来自尝试使用sequelize-auto-ts。 下载存储库,升级sequelize.d.ts并在Visual Studio Code(版本0.10.6)中打开会立即突出显示此行,并显示错误"找不到命名空间'sequelize'"。

var Sequelize:sequelize.SequelizeStatic = require('sequelize');
              ^^^^^^^^^

即使 sequelize.d.ts 在文件顶部成功引用: /// <reference path="../../typings/sequelize/sequelize.d.ts" />

如果声明 zzrm 模块时不带引号,则上面的"减少"示例有效:

declare module zzrm {
  export interface zzrmObject {id: string}
}

当我更新 sequelize.d.ts 时,我没有注意到模块声明已从

declare module sequelize { ... }

declare module "sequelize" { ... }

这在"环境外部模块"下的 TypeScript 文档中有所提及,但我还没有弄清楚这些部分是如何组合在一起的,以及为什么它们需要您也添加import * as zzrm from 'z_module';

相关内容

  • 没有找到相关文章

最新更新