export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
})"
`;
-exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (referenced exported function type) 1`] = `
+exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (property syntax) 1`] = `
"import { defineComponent as _defineComponent } from 'vue'
-export type Emits = (e: 'foo' | 'bar') => void
-
+
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
})"
`;
-exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (referenced function type) 1`] = `
+exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (referenced exported function type) 1`] = `
"import { defineComponent as _defineComponent } from 'vue'
-type Emits = (e: 'foo' | 'bar') => void
+export type Emits = (e: 'foo' | 'bar') => void
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
})"
`;
-exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (tuple syntax) 1`] = `
+exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (referenced function type) 1`] = `
"import { defineComponent as _defineComponent } from 'vue'
-
+type Emits = (e: 'foo' | 'bar') => void
+
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ({ foo: [], bar: [] }), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\", \\"baz\\"],
- setup(__props, { expose: __expose, emit }: { emit: ({(e: 'foo' | 'bar'): void; (e: 'baz', id: number): void;}), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
export default /*#__PURE__*/_defineComponent({
emits: [\\"foo\\", \\"bar\\"],
- setup(__props, { expose: __expose, emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
+ setup(__props, { expose: __expose, emit }) {
__expose();
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: ((e: 'foo' | 'bar') => void),`)
expect(content).toMatch(`emits: ["foo", "bar"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: (${type}),`)
expect(content).toMatch(`emits: ["foo", "bar", "baz"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: ({ (e: 'foo' | 'bar'): void }),`)
expect(content).toMatch(`emits: ["foo", "bar"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: ({ (e: 'foo' | 'bar'): void }),`)
expect(content).toMatch(`emits: ["foo", "bar"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: ({ (e: 'foo' | 'bar'): void }),`)
expect(content).toMatch(`emits: ["foo", "bar"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: ({ (e: 'foo' | 'bar'): void }),`)
expect(content).toMatch(`emits: ["foo", "bar"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: ({ (e: 'foo' | 'bar'): void }),`)
expect(content).toMatch(`emits: ["foo", "bar"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: ((e: 'foo' | 'bar') => void),`)
expect(content).toMatch(`emits: ["foo", "bar"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`emit: ((e: 'foo' | 'bar') => void),`)
expect(content).toMatch(`emits: ["foo", "bar"]`)
})
</script>
`)
assertCode(content)
- expect(content).toMatch(`setup(__props, { expose: __expose, emit }) {`)
expect(content).toMatch(`emits: ['foo']`)
})
- test('defineEmits w/ type (tuple syntax)', () => {
+ test('defineEmits w/ type (property syntax)', () => {
const { content } = compile(`
<script setup lang="ts">
const emit = defineEmits<{ foo: [], bar: [] }>()
)
})
- test('mixed usage of tuple / call signature in defineEmits', () => {
+ test('mixed usage of property / call signature in defineEmits', () => {
expect(() =>
compile(`<script setup lang="ts">
defineEmits<{