diff --git a/lib/rules/order-in-components.js b/lib/rules/order-in-components.js
index 1e0b517f8..1ecc49254 100644
--- a/lib/rules/order-in-components.js
+++ b/lib/rules/order-in-components.js
@@ -171,7 +171,9 @@ function isNotSideEffectsNode(node, visitorKeys) {
node.type === 'Literal' ||
// es2015
node.type === 'ArrowFunctionExpression' ||
- node.type === 'TemplateElement'
+ node.type === 'TemplateElement' ||
+ // typescript
+ node.type === 'TSAsExpression'
) {
skipNode = node
} else if (
diff --git a/tests/lib/rules/order-in-components.js b/tests/lib/rules/order-in-components.js
index 76d510964..873df3b0f 100644
--- a/tests/lib/rules/order-in-components.js
+++ b/tests/lib/rules/order-in-components.js
@@ -908,6 +908,41 @@ ruleTester.run('order-in-components', rule, {
line: 15
}
]
+ },
+ {
+ filename: 'example.vue',
+ code: `
+
+ `,
+ parser: require.resolve('vue-eslint-parser'),
+ parserOptions: {
+ ...parserOptions,
+ parser: { ts: require.resolve('@typescript-eslint/parser') }
+ },
+ output: `
+
+ `,
+ errors: [
+ {
+ message:
+ 'The "props" property should be above the "setup" property on line 4.',
+ line: 5
+ }
+ ]
}
]
})