仅导入 typescript 模块声明

Posted

技术标签:

【中文标题】仅导入 typescript 模块声明【英文标题】:Import typescript module declarations only 【发布时间】:2021-11-04 05:01:09 【问题描述】:

我有多个 React 项目,每次都需要声明相同的打字稿模块,例如字体.d.ts:

declare module "*.woff";
declare module "*.woff2";

或 images.d.ts:

declare module "*.jpg" 
  const src: string;
  export default src;

declare module "*.png" 
  const src: string;
  export default src;

我想创建一个包含此类类型的包,该包将包含在我正在处理的每个项目中,因此我不会在每个项目中创建和更新模块声明文件。不知道该怎么做?

【问题讨论】:

【参考方案1】:

不知道该怎么做?

创建代码

npm init -y.

在你的 package.json 中添加:"types": "/index.d.ts"

将您的包裹命名为尚未使用的名称。

使用您要包含的内容创建一个文件index.d.ts

npm publish

使用代码

安装你的包npm i your-package

types: ['your-package'] 添加到 tsconfig.json。

我在这里做了一些假设,比如发布到 npm 的能力,但这应该有助于您进一步研究并解决您的特殊要求。玩得开心?

【讨论】:

是否可以在另一个现有包中定义它们,其中 index.d.ts 已经构建到 /dist 并且无法在 package.json 中向 "types" 添加其他文件? (因为不允许使用数组)

以上是关于仅导入 typescript 模块声明的主要内容,如果未能解决你的问题,请参考以下文章

Typescript - 内部模块中的导入声明不能引用外部模块

即使未导入 typescript 声明文件也会被处理

从模块导入“私有”TypeScript 声明而不通过 package.json 公开它

LayaBox---TypeScript---模块

TypeScript - 条件模块导入/导出

Typescript 1.5 模块导入导出错误