Javascript ESLint在使用默认导出功能时发出投诉
我定义了一个函数,如下所示Javascript ESLint在使用默认导出功能时发出投诉,javascript,eslint,Javascript,Eslint,我定义了一个函数,如下所示 export default const myFunc = () => { // Do stuff } 然而,埃斯林特抱怨说,康斯特 解析错误:仅允许表达式、函数或类作为默认导出 有趣的是,如果我删除default关键字,ESLint不会有任何抱怨 为什么解析函数失败?后面的导出默认值必须是表达式或函数声明。变量的声明不是表达式;它是一个独立的语句,所以不允许您将它放在任何位置。(类似地,if(const foo='bar')也不被允许;那里只允许一个
export default const myFunc = () => {
// Do stuff
}
然而,埃斯林特抱怨说,康斯特
解析错误:仅允许表达式、函数或类作为默认导出
有趣的是,如果我删除default
关键字,ESLint不会有任何抱怨
为什么解析函数失败?后面的导出默认值必须是表达式或函数声明。变量的声明不是表达式;它是一个独立的语句,所以不允许您将它放在任何位置。(类似地,
if(const foo='bar')
也不被允许;那里只允许一个表达式。)这不是ESLint问题,而是JavaScript语法问题
将代码更改为:
export default () => {
// Do stuff
};
如果您还需要对函数进行命名,以便在文件中的其他位置引用该函数,则必须分两步对其进行命名和导出(如果需要为箭头函数):
另一方面,命名导出允许在导出变量的同时为变量赋值,这就是为什么允许
export const…
。(但在执行导出默认值
操作时,您并没有分配给独立变量)接下来的导出默认值
必须是表达式或函数声明。变量的声明不是表达式;它是一个独立的语句,所以不允许您将它放在任何位置。(类似地,if(const foo='bar')
也不被允许;那里只允许一个表达式。)这不是ESLint问题,而是JavaScript语法问题
将代码更改为:
export default () => {
// Do stuff
};
如果您还需要对函数进行命名,以便在文件中的其他位置引用该函数,则必须分两步对其进行命名和导出(如果需要为箭头函数):
另一方面,命名导出允许在导出变量的同时为变量赋值,这就是为什么允许export const…
。(但当您导出默认值时,您并没有分配给独立变量)