Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
feat(warn): warn computed conflict with methods (#10119)
Co-authored-by: wangzongxu <wangzongxu@vipkid.com.cn>
  • Loading branch information
wangzongxu and wangzongxu committed Apr 16, 2021
1 parent c6d7a6f commit 3ad60fe
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/core/instance/state.js
Expand Up @@ -202,6 +202,8 @@ function initComputed (vm: Component, computed: Object) {
warn(`The computed property "${key}" is already defined in data.`, vm)
} else if (vm.$options.props && key in vm.$options.props) {
warn(`The computed property "${key}" is already defined as a prop.`, vm)
} else if (vm.$options.methods && key in vm.$options.methods) {
warn(`The computed property "${key}" is already defined as a method.`, vm)
}
}
}
Expand Down
12 changes: 12 additions & 0 deletions test/unit/features/options/computed.spec.js
Expand Up @@ -206,6 +206,18 @@ describe('Options computed', () => {
expect(`computed property "a" is already defined as a prop`).toHaveBeenWarned()
})

it('warn conflict with methods', () => {
new Vue({
computed: {
a: () => 2
},
methods: {
a: () => {}
}
})
expect(`computed property "a" is already defined as a method`).toHaveBeenWarned()
})

it('rethrow computed error', () => {
const vm = new Vue({
computed: {
Expand Down

0 comments on commit 3ad60fe

Please sign in to comment.