如何从其他Typescript声明文件中公开类

如何从其他Typescript声明文件中公开类,typescript,typescript-typings,Typescript,Typescript Typings,假设我正在用Javascript构建一个节点模块,它公开了3个类: //index.js module.exports={ 甲级, B类, C类, } 我想编写一个Typescript声明文件,用于从其他声明文件中提取这些类,以便于组织。例如,类似这样的事情: //index.d.ts import { ClassA } from './classA.d.ts'; import { ClassB } from './classB.d.ts'; import { ClassC } from '

假设我正在用Javascript构建一个节点模块,它公开了3个类:

//index.js
module.exports={
甲级,
B类,
C类,
}
我想编写一个Typescript声明文件,用于从其他声明文件中提取这些类,以便于组织。例如,类似这样的事情:

//index.d.ts

import { ClassA } from './classA.d.ts';
import { ClassB } from './classB.d.ts';
import { ClassC } from './classC.d.ts';

declare module 'myModule' {
  export ClassA;
  export ClassB;
  export ClassC;
}
我很难做到这一点,我尝试了各种排列;每当我在
index.d.ts
中使用来自另一个本地文件的导入时,都会出现一些错误。在
index.d.ts
中插入整个类定义集效果很好,但我希望将它们组织到单独的文件中


使用Typescript 3.8.3.

我想我有一个小技巧,可以帮助您在声明文件中导入东西,我通常会这样做:

index.d.ts

声明模块'myModule'{
//它返回一个承诺,因此必须解决它
const moduleA=等待导入('./classA.d.ts');
导出类ClassA扩展moduleA.ClassA{}
//其他人也是如此
}
我想出来了

索引d.ts

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

declare module 'myModule' {
   import { ClassA as MyClassA } from 'myModule/classA';

   class ClassA extends MyClassA {}
}
declare module 'myModule/classA' {
  export class ClassA {
    foo:string;
    bar:number;
  }
}

谢谢@tmhao2005,这很有趣。你介意分享一下你的
classA.d.ts
文件是什么样子的吗?它只是一个像你一样的普通类。你成功了吗?恐怕没有。Typescript编译器似乎不关心类型定义文件中的
wait import
declare module 'myModule/classA' {
  export class ClassA {
    foo:string;
    bar:number;
  }
}