如何在ES6类中定义类级别常量[重复]

2024-01-02

我们如何定义类级常量并在静态方法和实例方法中访问它?

 class ExternalRequests{

      const HEADERS = { "Accept":  "application/json, text/plain", "Content-Type": "application/json", "Access-Control-Allow-Origin": "*"}


      static get(url){
        return fetch(url, {method: 'get', HEADERS})
        .catch(_ => {
          throw new Error("network error");
        })
        .then(response => {
          if (!response.ok) {
            throw new Error(response.statusText);
          }
          return response.json();
        });
      }

      static post(url, data){
        return fetch(url, {method: 'post', HEADERS, body: data})
        .catch(_ => {
          throw new Error("network error");
        })
        .then(response => {
          if (!response.ok) {
             throw new Error(response.statusText);
          }
          return response.json();
        });
      }

     static put(url, data){
        return fetch(url, {method: 'put', HEADERS, body: data})
        .catch(_ => {
          throw new Error("network error");
        })
        .then(response => {
          if (!response.ok) {
            throw new Error(response.statusText);
          }
          return response.json();
        });
      }

      static delete(){
       return fetch(url, {method: 'delete', HEADERS})
        .catch(_ => {
          throw new Error("network error");
        })
        .then(response => {
          if (!response.ok) {
            throw new Error(response.statusText);
          }
          return response.json();
        });
      }

    }

    export default ExternalRequests;

ERROR

ERROR in ./externalRequests.js
Module build failed: SyntaxError: Unexpected token (3:8)

  1 | class ExternalRequests{
  2 | 
> 3 |   const HEADERS = { "Accept":  "application/json, text/plain", "Content-Type": "application/json", "Access-Control-Allow-Origin": "*"}

将其更改为static get访问器。然后您可以访问它this.HEADERS来自其他静态方法。 (不幸的是,这是在 JS 获取类属性之前我们得到的最好的结果)

class ExternalRequests{
  static get HEADERS() {
    return { 
      "Accept":  "application/json, text/plain", 
      "Content-Type": "application/json", 
      "Access-Control-Allow-Origin": "*"
    }
  }

  static get(url){
    return fetch(url, {method: 'get', this.HEADERS})
  }
/* rest of the class ... */

如果您现在想使用类属性,您可以使用babel-transform-class-properties https://babeljs.io/docs/plugins/transform-class-properties/,这将允许您执行以下操作:

class ExternalRequests {
  static HEADERS = /* ... your headers */
  /* ...rest of the class... */
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在ES6类中定义类级别常量[重复] 的相关文章

随机推荐

  • 将两个变量相除得到 NaN

    我正在学习 JavaScript 我当前的代码似乎适用于总价值 但我无法让我的部门代码发挥作用来显示每人的成本是多少 这似乎是问题所在 document getElementById costeach innerHTML Price eac
  • Android 浅色/深色主题操作栏文本

    我正在我的 Playground Android 应用程序中实现深色主题 并且正在努力将操作栏文本颜色设置为白色 下面是我的风格和颜色 操作栏的背景遵循 colorPrimary 这很棒 然而 两种颜色 浅色和深色 都是非常深色的颜色 并且
  • Android,从不同的活动在缓存中保存和加载位图

    我有一个需要在新活动中显示的位图 因此我对其进行缓存 并在打开的活动中尝试加载它 但出现 nullPointerException 我在这里保存图像 File cacheDir getBaseContext getCacheDir File
  • 如何压缩谷歌驱动器中的文件?

    有什么方法可以将大文件压缩成谷歌驱动器中较小的 zip 或 tar gz 文件吗 我试过谷歌应用脚本 https stackoverflow com questions 13259041 creating a zip file inside
  • 为什么 Chrome 不允许 Web Workers 在 JavaScript 中运行?

    如果我尝试通过 JavaScript 文件使用 Web Worker Chrome 会抛出错误 未捕获的安全错误 无法创建工作程序 无法从源 null 访问 path worker js 处的脚本 但如果我们直接通过 HTML 使用 它就允
  • JSF 2.0 和多重提交问题

    有人告诉我JSF 2 0自动处理多重提交问题 是对的吗 如果是 JSF 2 0 是如何做到这一点的 如果不是 在处理这个问题时必须注意哪些事项 以免留下任何陷阱 Thanks 这是由以下人员请求和维护的JSF 规范问题 559 http j
  • Magento 获取购物车单件商品价格(含税)税

    我有一个很奇怪的问题 我希望有人能帮助我解决这个问题 以下是影响我的问题的主要配置设置 管理面板中显示的目录价格包含税费 前端显示的目录价格包含税费 购物车中的商品显示不含税 因此它单独显示在小计附近 到目前为止一切都运行良好 问题出在自定
  • ESlint 抛出错误而不是警告

    是否可以使用 Eslint 抛出错误而不是警告 我正在与一个create react app并希望在我的团队中有一个非常严格的 lint 政策 并认为这可能是一个好的开始 那可能吗 max warnings可以达到这个目的 max warn
  • 为什么 UnixSystem().getUsername() 返回 null(Docker 中的 OpenJDK 17)

    以下代码适用于 OSX var hadoopInputFile org apache parquet hadoop util HadoopInputFile fromPath parquetPath new Configuration 但在
  • 日期时间中不包括周末

    我只想知道如何计算日期时间而不包括周末 目前正在制作一个图书馆系统 图书馆周末不开放 这就是为什么我需要计算不包括周末的日期 前任 2015 年 3 月 13 日 星期五 我借了 5 天 所以 返回日期应该是 03 20 15 星期五 因为
  • Django Rest框架如何更改:“此字段不能为空。”错误信息

    当我尝试创建新的用户模型时 我收到以下验证错误响应 HTTP 400 Bad Request Allow POST OPTIONS Content Type application JSON Vary Accept phone This f
  • NGINX try_files + 别名指令

    我正在尝试使用 php 代码向站点的 blog 子目录提供请求 该代码位于文档根目录之外的文件夹中 这是我的主机配置 server server name local test ru root home alex www test2 loc
  • ActionListener 未实现

    JFrameWithPanel 不是抽象的 不会重写 java awt event ActionListener 中的抽象方法 actionPerformed java awt event ActionEvent 公共类 JFrameWit
  • Javascript 中 (1).toString() 和 1.toString() 内部发生了什么[重复]

    这个问题在这里已经有答案了 在 JavaScript 控制台中 如果输入以下内容 1 toString Uncaught SyntaxError Invalid or unexpected token 1 toString 1 这两条语句在
  • css 圆圈内中间对齐图标字体

    我正在尝试将图标居中对齐在圆圈内 我正在使用 font awesome 的图标字体 我的代码如下 ul li a href i class icon 5x icon camera i a li li a href i class icon
  • Ruby - 按属性降序对对象数组进行排序

    我有这个 Json 对象数组 students id 1 first name John last name Doe age 14 id 2 first name Victoria last name Secret age 9 id 3 f
  • 在android中动态添加选项卡

    在我的应用程序中 我想通过单击按钮动态添加选项卡 我该如何添加 其余的 GUI 应与原来相同 仅应添加选项卡 这是 xml 文件
  • 为什么在映射定义中需要转义 bar Ex 命令分隔符,但在 Vim 的命令行中不需要转义?

    我不明白为什么以下命令会做不同的事情 粘贴在 vimrc文件中 这两个命令都定义了通过按触发的映射的两个版本t在普通模式下 nnoremap t call search m a b W
  • 使用 Python 在 LibreOffice 中创建流程图

    关于如何使用 Python 控制 LibreOffice 文本文档和电子表格的示例有很多 但关于如何使用绘图程序的文档却很少 我试图弄清楚如何使用 Python 在 LibreOffice 中绘制流程图或至少某些形状 我使用的是 Windo
  • 如何在ES6类中定义类级别常量[重复]

    这个问题在这里已经有答案了 我们如何定义类级常量并在静态方法和实例方法中访问它 class ExternalRequests const HEADERS Accept application json text plain Content