我已经写过并且npm发布了这个:https://github.com/justin-calleja/pkg-dependents
现在我在打字稿中写这个包:https://github.com/justin-calleja/update-dependents
我想在update-dependents中重用pkg-dependents(IndexInfoDict)中定义的类型,我想检查是否有更好的方法:
在pkg-dependents的index.ts中:
import { IndexInfoDict } from './interfaces';
export interface IndexInfoDict extends IndexInfoDict {};
即。我导入了IndexInfoDict接口以在pkg-dependents的index.ts中注释一个函数,但是因为我想在update-dependents中使用这个相同类型,我被迫导出另一个扩展自己的IndexInfoDict ...
这似乎是一个奇怪的模式,但编译器现在很高兴。
注意:共享类型的其他步骤:
import { IndexInfoDict } from 'pkg-dependents/lib/index.d.ts';
有人可以确认没有更好的方法吗?
我想要的,但不知道是否可能,是:
import { pkgDependents, IndexInfoDict } from 'pkg-dependents'
...但是因为' pkg-dependents'指的是一个JS文件(pkg-dependents' s,package.json的主要是./lib/index.js),我怀疑这是否可行。修改1:
我想的越多,上面的2越多(避免' pkg-dependents / lib / index.d.ts')似乎是不可能的。我希望tsc有一些神奇的东西来弄清楚来自' index.d.ts'即使' index.js'正在导入 - 这样我只能从一个Typescript项目中import { pkgDependents, IndexInfoDict } from 'pkg-dependents'
而只能从JS项目中import { pkgDependents } from 'pkg-dependents'
(没有tsc魔法,JS也没有类型,所以IndexInfoDict已经出来了)。< / p>
目前,我必须:
import pkgDependents from 'pkg-dependents';
import { IndexInfoDict } from 'pkg-dependents/lib';
好吧......也许没有魔法。 1怎么样?是否有一种不那么令人困惑的方式导出导入类型而不是导出类型的导入类型?
(我在pkg-dependents中的多个地方使用IndexInfoDic。其中一个恰好是index.ts,主要的导出函数。因此,我希望它在index.ts之外,但是从index.ts所以它在index.d.ts中生成,用户从index.d.ts获取main函数使用的类型。
答案 0 :(得分:3)
在index.ts中,您可以执行以下操作:
export { IndexInfoDict } from "./interfaces;
这将从主文件中导出界面。