Browse Source

feat(warn): warn computed conflict with methods (#10119)

Co-authored-by: wangzongxu <wangzongxu@vipkid.com.cn>
dev
wangzongxu 4 years ago
committed by GitHub
parent
commit
3ad60fea73
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/core/instance/state.js
  2. 12
      test/unit/features/options/computed.spec.js

2
src/core/instance/state.js

@ -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)
}
}
}

12
test/unit/features/options/computed.spec.js

@ -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: {

Loading…
Cancel
Save