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

Co-authored-by: wangzongxu <wangzongxu@vipkid.com.cn>
This commit is contained in:
wangzongxu 2021-04-16 23:56:32 +08:00 committed by GitHub
parent c6d7a6fce7
commit 3ad60fea73
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 0 deletions

View File

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

View File

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