如何从环境模块(B.d.ts)中引用普通类型脚本模块(A.ts)



最初我在环境模块中声明了所有内容。后来,我不得不将枚举提取到非环境模块,因为我需要枚举成员查找,使用declare和const是不可能的。现在我的示例文件如下

//enums.ts
export enum Enum1{
    Value1, Value2
}
//ambient.d.ts
import * as enums from "./enums";
declare interface TypeA
{
  enumField: enums.Enum1;
  strField: string;
}
//consumer.ts
/// <reference path="ambient.d.ts"/>
class Consumer{
 memberField: TypeA; // <= Here compiler cannot find TypeA
}

我做错了什么?我应该如何处理?

一旦添加行:

import * as enums from "./enums";

您将其转换为外部模块,因此要访问其内容,需要导入它,如下所示:

import * as amb from './ambient'
class Consumer
{
    memberField: amb.TypeA; 
}

作为旁注。不要使用名称空间或尝试将它们与模块混合使用(链接、链接)。

您可以添加以下import {TypeA} from "./ambient";

import {TypeA} from "./classes/ambient"; //change your path
//consumer.ts
/// <reference path="./classes/ambient.d.ts"/>
class Consumer{
 memberField: TypeA;
}

//ambient.d.ts
import * as enums from "./enums";
export declare interface TypeA
{
  enumField: enums.Enum1;
  strField: string;
}

相关内容

  • 没有找到相关文章

最新更新