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



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

下面是示例

_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);

这里GAMMA没有在_export.js中定义,但不要在_import.js中抛出任何错误?

我遇到了这个问题,因为我不小心在语句中导入了一个错误的文件(2 个目录中的相同文件名import但它不会抛出任何错误,即在文件中找不到给定的导出命名属性。

这种行为是否正确?

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

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

在"../../模块'

例子

最新更新