我想在React中为process对象添加一个属性,所以Webpack将用DefinePlugin插件替换它:

declare global {
  interface Process {
    gitInfo: {
      GIT_COMMIT_DATE?: string;
      GIT_COMMIT_HASH?: string;
      GIT_BRANCH?: string;
      GIT_COMMIT_MESSAGE?: string;
    };
  }
}

const gitInfo = process.gitInfo; // Error: Property 'gitInfo' does not exist on type 'Process'.ts(2339)

有什么问题吗?

推荐答案

您要扩充的类型由NodeJS命名空间限定.因此,您需要将其编写为

declare global {
  namespace NodeJS {
    interface Process {
      gitInfo: {
        GIT_COMMIT_DATE?: string;
        GIT_COMMIT_HASH?: string;
        GIT_BRANCH?: string;
        GIT_COMMIT_MESSAGE?: string;
      }
    }
  }
}

Javascript相关问答推荐

字节数组通过echo框架传输到JS blob

我可以使用CSS有效地实现最大宽度=100%和最大高度=100%,而无需父母有明确的/固定的宽度和高度,替代方法吗?

如何用显示网格平滑地将元素从一个地方移动到另一个地方?

为什么promise对js中的错误有一个奇怪的优先级?

将现场录音发送到后端

为什么!逗号和空格不会作为输出返回,如果它在参数上?

显示图—如何在图例项上添加删除线效果?

不能将空字符串传递给cy.containes()

如何在Svelte中从一个codec函数中调用error()?

同一类的所有div';S的模式窗口

用Reaction-RT-Chart创建实时条形图

如何使用puppeteer操作所有选项

使用静态函数保存 node 前的钩子

我想为我的Reaction项目在画布上加载图像/视频,图像正在工作,但视频没有

如何将值从后端传递到前端

Reaction路由v6.4+数据API:重试加载程序而不显示错误

使用Java脚本筛选数组中最接近值最小的所有项

带元素数组的Mongo聚合

用内嵌的含selenium的Java脚本抓取网站

正在发出错误的URL请求