quick-lint-js has Diag_Multiple_Export_Defaults reporting. It is buggy, producing both false positives and false negatives. Some problems identified:
[ ] Complexities with declaration merging (#1107). This might be fixable by reusing the declaration merging code in the Variable_Analyzer.
[ ] Confusion around TypeScript overload signatures. For example, export default function f(); export function f() {} is considered a default export but it is not.
[ ] Exports explicitly named default are not detected as default exports but should be. For example, function g() {} export {g as \u{64}efault}; should be detected as a default export.
quick-lint-js has Diag_Multiple_Export_Defaults reporting. It is buggy, producing both false positives and false negatives. Some problems identified:
export default function f(); export function f() {}
is considered a default export but it is not.default
are not detected as default exports but should be. For example,function g() {} export {g as \u{64}efault};
should be detected as a default export.