为什么 `Export Default Const` 无效?

2024-01-12

我看到以下内容很好:

const Tab = connect( mapState, mapDispatch )( Tabs );
export default Tab;

然而,这是不正确的:

export default const Tab = connect( mapState, mapDispatch )( Tabs );

但这很好:

export default Tab = connect( mapState, mapDispatch )( Tabs );

可以解释一下为什么吗const无效于export default?是否是不必要的添加以及任何声明为export default被假定为const或者这样的?


const就好像let, it is a 词法声明 http://www.ecma-international.org/ecma-262/6.0/#sec-let-and-const-declarations (变量声明、声明) 用于在块中定义标识符。

你正试图将其与default关键词,它期望一个可提升声明、类声明 or 赋值表达式 http://www.ecma-international.org/ecma-262/6.0/#sec-exports-static-semantics-boundnames跟随它。

因此它是一个语法错误.


如果你想const您需要提供标识符而不是使用的东西default.

export本身接受一个变量语句 or 宣言在它的右边。


下面的就好了export default Tab;

Tab becomes an AssignmentExpression as it's given the name default ?

export default Tab = connect( mapState, mapDispatch )( Tabs ); is fine

Here Tab = connect( mapState, mapDispatch )( Tabs ); is an 赋值表达式.


Update:以不同的方式想象问题

如果您试图从概念上理解这一点并且上面的规范推理没有帮助,请将其视为"if default是一个合法的标识符而不是保留的令牌,有什么不同的写法export default Foo; and export default const Foo = 1; ?"

在这种情况下,扩展的写法是

// pseudocode, this thought experiment is not valid JS

export default Foo;
// would be like
export const default = Foo;

export default const Foo = 1;
// would be like
export const default const Foo = 1;
// so would the following line make sense?
const bar const Foo = 1;

扩展有一个有效的论据should是这样的

// pseudocode, this thought experiment is not valid JS

export default const Foo = 1;
// would be like
const Foo = 1;
export const default = Foo;

然而,这将变得模棱两可谢尔盖的评论 https://stackoverflow.com/questions/36261225/why-is-export-default-const-invalid/36261387?noredirect=1#comment80008351_36261387,因此显式编写此模式更有意义。

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

为什么 `Export Default Const` 无效? 的相关文章

  • 如何获取对象的所有属性?

    如何在 JavaScript 中使用反射获取对象的所有属性 循环遍历对象并获取属于该对象且不属于该对象的每个键 一个函数 var properties for var key in obj if obj hasOwnProperty key
  • pubnub 和 head.js

    有没有人成功整合过pubnub http www pubnub com 和 head js 正确吗 Pubnub http www pubnub com 希望我将他们的脚本放在页面底部并带有 div 就在它前面的标签 这可以确保在最后调用
  • 在 Javascript 中获取第一个数字出现后的子字符串

    我正在尝试提取第一个数字之后 并包括 的字符 ABC 123SD gt 123SD 123 gt 123 123SD gt 123SD ABC gt 我当前的解决方案如下 var string1 ABC 123SD var firstDig
  • 定义 js-xlsx 单元格范围

    我正在尝试使用 js xlsx 读取 Excel 值 我可以使用以下代码从工作簿工作表中获取单元格值 if typeof require undefined XLSX require xlsx var workbook XLSX readF
  • Javascript - 在加载所有图像后执行

    看了别人的问题我想 window onload 会回答我的问题 我已经尝试过这个 但它会在页面加载时立即执行代码 而不是在图像加载之后 如果有什么区别的话 图像来自 CDN 并且不是相对的 有人知道解决办法吗 我没有使用 jQuery 想要
  • javascript jquery 使用脚本更改脚本的src

    我有一个 JavaScript 脚本 它有一个 src 元素 这个 src 是一个 url 我想使用 javascript 更改它 一次更改为其他内容 或者动态创建它 使用 javascript jquery 动态创建脚本元素的最佳方法是什
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • 判断一个数字是否能被 3 或 5 整除 (FizzBu​​zz)

    如何根据输出是否能被 3 或 5 整除来更改输出 如果它能被 3 整除 我想显示 rock 如果它能被 5 整除 我想显示 star 类似于 FizzBu zz 如果两者都有 他们都会看到 这是我的代码 if var n Math floo
  • 如何从 JSON 响应重定向?

    所以我尝试使用 Flask 和 Javascript 上传器 Dropzone 上传文件并在上传完成后重定向 文件上传正常 但在烧瓶中使用传统的重定向 return redirect http somesite com 不执行任何操作 页面
  • JavaScript 测验在提出所有问题之前结束

    我现在正在学习 JavaScript 并且正在创建一个测验 我的测验运行正常 控制台中没有任何错误 但它会跳过问题 有时会在回答所有问题之前结束测验 即使给出正确答案 也会减少时间 我不太确定为什么它会这样做 因为在我看来它的编码是正确的
  • 为什么将 x 和 y 设置为 0 时 svg 文本会消失?

    我刚刚开始阅读有关svg我提出了以下问题 我正在创建一个简单的svg with a text里面如下图所示 从我的阅读中我了解到x and y of the text标签声明文本在标签内的位置svg space 为什么当我同时设置x and
  • 在 React Navigation 中将 props 传递给自定义抽屉导航器

    在反应导航抽屉菜单中 我想显示用户名 John Doe 它处于我的主要组件的状态 Router 我怎样才能将自定义抽屉内容组件传递给它 额外信息 我从 AsyncStorage 中获取此名称 组件已挂载 这是我的代码 export defa
  • 禁用特定 div 上的 Tab 键

    我有以下结构 div div Some content div div Some content div div 我想 禁用 div2 上的 tab 键 我的意思是按下 tab 键时 div2 的元素不会获得焦点 有没有简单的方法可以使用
  • Ember Data 中出现“超出最大调用堆栈大小”错误的原因可能是什么?

    Ember 发布新版本 3 6 0 后 我开始在控制台中收到错误 rsvp js 24 未捕获 RangeError 超出最大调用堆栈大小 在 WeakMap get 在 getCacheFor metal js 25 在 Computed
  • 使用 AngularJS 多部分表单数据将文件上传到 Google Cloud Storage

    我正在尝试使用 AngularJS 中指定的多部分方法将图像文件上传到 Google Cloud Storagehttps cloud google com storage docs json api v1 how tos upload m
  • mozilla pdf.js 没有全视图

    我喜欢这个 pdf 查看器https github com mozilla pdf js https github com mozilla pdf js Demo http mozilla github com pdf js web vie
  • MongoDB中如何通过引用字段进行查询?

    我有两个 Mongo 模式 User id ObjectId name String country ObjectId Reference to schema Country Country id ObjectId name String
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定

随机推荐

  • 遗传算法/遗传编程解决方案有哪些好的例子? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 验证上下文始终为 NULL?

    我有自定义验证属性 如下所示 public class MyCustomAttribute ValidationAttribute protected override ValidationResult IsValid object val
  • 有没有办法在java应用程序中完全禁用RMI?

    在我们的应用程序中 远程过程调用是通过自己的基于 netty 的命令调度程序系统来解决的 我们有很多模块 大约 20 个 我想在单独的 jvm s 中运行所有模块 我的问题是 RMI 为每个 JVM 生成大约 17 个线程 我根本不需要 R
  • TailwindCSS:禁用的变体不起作用

    我正在尝试使用disabled顺风的变体 但它似乎不起作用 我不知道该怎么办 如果按钮被禁用 我想更改按钮外观 我已阅读文档 它说默认情况下未启用 禁用 变体 所以我修改了 tailwind config js 现在它看起来像这样 modu
  • 自动拉伸垂直列(div)

    检查这个fiddle http jsfiddle net Q7MFX 2 please 我想要以下内容 红色列有一些文本 黄色是动态内容 绿色没有任何内容 只是一种颜色 我希望红色和绿色列的高度与黄色内容一样高 height 100 没用
  • 在php中生成Excel文件时显示进度条

    我有一个 HTML 表单 当您通过单击按钮提交表单时 应用程序会使用 PHPExcel 生成一个 Excel 文件 一切正常 但是当 Excel 文件很大时 等待时间会很长 我想添加进度条或显示完成值的百分比 我的问题是我不知道如何将其插入
  • 基于堆栈的 RAII 是否保证仅在超出 C++ 范围后才能运行?

    使用时资源获取即初始化 RIAA http en wikipedia org wiki Resource Acquisition Is Initialization在 C 中 通常有以下内容 class CriticalSection pu
  • Camera2 Api..java.lang.IllegalArgumentException:Surface 没有有效的本机 Surface

    我尝试了很长时间将 Camera2 api 集成到我的应用程序中 它一开始捕获图像工作正常 但是当我第二次拍摄时 预览没有出现 我在 genymotion nexus 5 模拟器中测试了它 尝试了所有示例 预览是第二次不来拍照 也出现此错误
  • 从缓存中获取时完整性不正确

    跑步时yarn add dev jest I got 从缓存中获取时出现错误完整性错误 完整输出 tests master yarn add dev jest yarn add v1 19 0 info No lockfile found
  • 熔化 + strsplit,或与聚合相反

    我有一个小问题 在概念上似乎很简单 但我找不到方法 假设我有一个 data frame df2 其中一列列出了汽车品牌 另一列列出了每个品牌的所有型号 并用 分隔 我已经获得了 df2 聚合另一个名为 df1 的 data frame 主键
  • php json_encode 不转义新行

    我面临 json encode 的一些问题 当我 json encode 一个包含新行的数组时 它不会转义新行 而是删除 并保留 n ex array array name gt some text n r text results jso
  • 使用bat启动Powershell脚本

    我有一个批处理文件 test bat 来启动 powershell 脚本 pushd C myscripts powershell test ps1 arg1 arg2 with space arg3 popd 脚本 test ps1 位于
  • 仅当添加为引用时,在 C++ Windows 应用程序中引用本机 C++ DLL 才有效

    Visual Studio 2013 2015 我有一个空白的 C Windows 应用商店应用程序和同一解决方案中最简单的 DLL 仅导出void foo 在例如中使用此 DLL Win32 控制台应用程序按预期工作 包含 DLL 标头并
  • 如何将 raw_input 变量视为整数[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Mit Print kann ich das Programm den Wert einer Variablen ausgeben anz
  • 修改字符串(字符数组)[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在尝试用C语言修改一个字符串 char signal cat 8 if k 1 strcpy s signal ca
  • 我无法运行 geckodriver、python selenium ; [Win错误216]

    我有 win32 驱动程序 https github com mozilla geckodriver releases https github com mozilla geckodriver releases 并将exe放在python3
  • 如何刷新网站缓存?

    这个问题专门针对 Azure 在其门户中 我有一个在 Azure WordPress 中运行的测试站点 当我尝试查看我所做的更新时 我看不到它们 即使我刷新浏览器的缓存 或者在从未访问过该网站的新位置访问该网站 我也看不到这些更改 我的下一
  • React:更新数组元素而不重新渲染其他数组元素

    是否有可能重新渲染一个元素一个数组的 阻止其他人重新渲染 Example 拥有 500 个数组
  • 使用自定义 ID 插入数据的代码优先实体框架

    我在项目中使用代码优先 EF 在插入具有自定义 id 的数据时遇到问题 当我尝试插入具有自定义 ID 例如 999 的数据时 EF 会忽略它并将递增的 ID 插入表中 我的型号 public class Address Key public
  • 为什么 `Export Default Const` 无效?

    我看到以下内容很好 const Tab connect mapState mapDispatch Tabs export default Tab 然而 这是不正确的 export default const Tab connect mapS