vue3-core/packages/dts-test/defineCustomElement.test-d.ts

64 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-01-26 23:04:18 +08:00
import { defineCustomElement, expectType, expectError, describe } from './index'
describe('inject', () => {
// with object inject
defineCustomElement({
props: {
a: String
},
inject: {
foo: 'foo',
2023-01-12 20:02:33 +08:00
bar: 'bar'
},
created() {
expectType<unknown>(this.foo)
expectType<unknown>(this.bar)
// @ts-expect-error
2023-01-12 20:02:33 +08:00
expectError((this.foobar = 1))
}
})
// with array inject
defineCustomElement({
props: ['a', 'b'],
inject: ['foo', 'bar'],
created() {
expectType<unknown>(this.foo)
expectType<unknown>(this.bar)
// @ts-expect-error
2023-01-12 20:02:33 +08:00
expectError((this.foobar = 1))
}
})
// with no props
defineCustomElement({
inject: {
foo: {
from: 'pbar',
default: 'foo'
},
bar: {
from: 'pfoo',
default: 'bar'
2023-01-12 20:02:33 +08:00
}
},
created() {
expectType<unknown>(this.foo)
expectType<unknown>(this.bar)
// @ts-expect-error
2023-01-12 20:02:33 +08:00
expectError((this.foobar = 1))
}
})
// without inject
defineCustomElement({
props: ['a', 'b'],
created() {
// @ts-expect-error
2023-01-12 20:02:33 +08:00
expectError((this.foo = 1))
// @ts-expect-error
2023-01-12 20:02:33 +08:00
expectError((this.bar = 1))
}
})
2023-01-12 20:02:33 +08:00
})