如果未在导出文件中定义导出的属性,import语句不会引发任何错误

时间:2017-11-17 06:27:30

标签: javascript ecmascript-6 eslint

在检查导入/导出功能时,令人惊讶的是,如果在导入中使用了命名属性并且未在导出的文件中定义它而不会抛出任何错误?

下面是示例

_export.js

export const ALPHA = 'alpha';
export const BETA = 'beta';

_import.js

import {ALPHA, BETA, GAMMA} from './export_'

console.log("alpha is ", ALPHA);
console.log("beta is", BETA);
console.log("gamma is", GAMMA);

此处{em> _export.js 中未定义GAMMA,但在 _import.js 中不会抛出任何错误?

我遇到了这个问题,因为我在import语句中意外导入了错误的文件(2个目录中的文件名相同),但它没有抛出在文件中找不到给定导出的命名属性的任何错误

这种行为是否正确?

linter中是否有任何linting规则(例如eslint)可用于识别此类错误并向开发人员抛出错误或警告?

1 个答案:

答案 0 :(得分:0)

据我所知,esLint并不提供开箱即用的支票 您可能想要使用eslint-plugin-import 我使用它,当找不到模块时,它会抛出import/named的错误 例如:

  

在'../../ modules'

中找不到MyModule

examples