Closed
Description
Tell us about your environment
- ESLint Version: 4.19.1
- eslint-plugin-vue Version: 4.7.1
- Node Version: 8.10.0
Please show your full configuration:
module.exports = {
root: true,
env: {
node: true,
},
globals: {
describe: true,
it: true,
cy: true,
},
extends: ['plugin:vue/recommended', '@vue/standard', '@vue/typescript'],
rules: {
// Plain JS rules
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'comma-dangle': ['error', 'always-multiline'],
semi: ['error', 'always'],
'space-before-function-paren': ['error', 'never'],
'no-var': 'error',
'no-const-assign': 'error',
// 'no-unused-vars': 'warn',
'no-await-in-loop': 'error',
'default-case': 'error',
eqeqeq: 'warn',
'no-alert': 'warn',
'no-console': 'off', //process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-unreachable': 'warn',
'no-else-return': 'warn',
'no-multi-spaces': 'warn',
'no-useless-return': 'warn',
'no-case-declarations': 'error',
yoda: 'error',
'no-use-before-define': 'warn',
camelcase: ['error', { properties: 'never' }],
'no-mixed-spaces-and-tabs': 'error',
'no-duplicate-imports': 'error',
'prefer-const': 'warn',
indent: 'off',
'space-before-function-paren': 'off',
'standard/computed-property-even-spacing': 'off',
// Extra Vue rules
'vue/html-closing-bracket-spacing': 'warn',
'vue/html-closing-bracket-newline': [
'warn',
{
singleline: 'never',
multiline: 'always',
},
],
'vue/require-prop-types': 'never', // temporary, till Array junk is fixed
},
parserOptions: {
parser: 'typescript-eslint-parser',
},
};
What did you do? Please include the actual source code causing the issue.
export default (Vue as VueConstructor<
Vue &
AudioState & {
$refs: {
audio: HTMLAudioElement;
};
}
>).extend({
data() { /* ... */ },
props: { /* ... */ },
// etc.
});
What did you expect to happen?
- ESLint error about
props
coming afterdata
What actually happened? Please include the actual, raw output from ESLint.
- No warnings/errors
Notes:
If I replace the export line with export default Vue.extend({
then it works as expected. Extending the type interface seems to break this rule.