当前位置: 首页 > 知识库问答 >
问题:

如何在TypeScript中显式地设置“global”的新属性?

甄正信
2023-03-14

我有一个定义如下的变量:

(global as any).State = {
  variables: {},
};

我的问题是,如何声明State的类型签名?如果我说(全局的)。状态:某事=...,编译器给我一个错误说;预期

据我所知,这和这个问题是一样的,但这是关于window变量,而不是global变量:如何在TypeScript中显式地设置“window”的新属性?

共有1个答案

孟豪
2023-03-14

全局是节点。相当于窗口的JS和包含在@type/节点中的全局变量声明:

// @types/node/globals.d.ts
declare var global: NodeJS.Global;
export {}

declare global { // declare global is TS specific, it is not the Node global!
  namespace NodeJS {
    interface Global {
      State: {
        variables: {}
      }
    }
  }
}
declare namespace NodeJS {
  interface Global {
    State: {
      variables: {}
    }
  }
}

然后,您将能够设置状态,而无需依赖任何

global.State = { variables: {} }
 类似资料:
  • 我通过在上显式设置属性来为对象设置全局命名空间。 TypeScript在下划线,并抱怨: 属性“myNamespace”不存在于类型为“window”的值中“any” 我可以通过将声明为环境变量并删除明确性来使代码工作,但我不想这样做。 我怎样才能保持在那里,并让打字很开心呢? 作为附带说明,我觉得TypeScript抱怨特别有趣,因为它告诉我是类型,它肯定可以包含任何内容。

  • table设置cell-style样式报ts类型错误?

  • 我正在开发自己的网站,它支持多主题,例如 我试图通过为本地存储添加键和值来解决这个问题,我看到了很多关于它的教程,但没有进展。 HTML代码 > 头

  • 我正在尝试使用TypeScript为类设置。但这并不奏效。如果你有什么想法,请与我分享。

  • 生成值属性是在添加或更新实体时(由 EF 或者 数据库)为其生成属性值的属性。详见 生成值 。 在某些环境下你可能想要显式设置生成值属性的值,而不是使用生成的值。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。 模型 本文使用的模型只包含一个 Employee 实体。‘ public class Employee { public int EmployeeId { get;

  • 我学习打字稿。我想设置组件功能道具类型。但我不知道如何设置。 这是代码。 我不想设置“任何”。我设置了什么类型?