compileScript.spec.ts.snap 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971
  1. // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
  2. exports[`SFC analyze <script> bindings > auto name inference > basic 1`] = `
  3. "export default {
  4. __name: 'FooBar',
  5. setup(__props) {
  6. const a = 1
  7. return { a }
  8. }
  9. }"
  10. `;
  11. exports[`SFC analyze <script> bindings > auto name inference > do not overwrite manual name (call) 1`] = `
  12. "import { defineComponent } from 'vue'
  13. const __default__ = defineComponent({
  14. name: 'Baz'
  15. })
  16. export default /*#__PURE__*/Object.assign(__default__, {
  17. setup(__props) {
  18. const a = 1
  19. return { a }
  20. }
  21. })"
  22. `;
  23. exports[`SFC analyze <script> bindings > auto name inference > do not overwrite manual name (object) 1`] = `
  24. "const __default__ = {
  25. name: 'Baz'
  26. }
  27. export default /*#__PURE__*/Object.assign(__default__, {
  28. setup(__props) {
  29. const a = 1
  30. return { a }
  31. }
  32. })"
  33. `;
  34. exports[`SFC compile <script setup> > <script> after <script setup> the script content not end with \`\\n\` 1`] = `
  35. "const n = 1
  36. import { x } from './x'
  37. export default {
  38. setup(__props) {
  39. return { n, x }
  40. }
  41. }"
  42. `;
  43. exports[`SFC compile <script setup> > <script> and <script setup> co-usage > script first 1`] = `
  44. "import { x } from './x'
  45. export const n = 1
  46. const __default__ = {}
  47. export default /*#__PURE__*/Object.assign(__default__, {
  48. setup(__props) {
  49. x()
  50. return { n, x }
  51. }
  52. })"
  53. `;
  54. exports[`SFC compile <script setup> > <script> and <script setup> co-usage > script setup first 1`] = `
  55. "export const n = 1
  56. const __default__ = {}
  57. import { x } from './x'
  58. export default /*#__PURE__*/Object.assign(__default__, {
  59. setup(__props) {
  60. x()
  61. return { n, x }
  62. }
  63. })"
  64. `;
  65. exports[`SFC compile <script setup> > <script> and <script setup> co-usage > script setup first, lang="ts", script block content export default 1`] = `
  66. "import { defineComponent as _defineComponent } from 'vue'
  67. const __default__ = {
  68. name: "test"
  69. }
  70. import { x } from './x'
  71. export default /*#__PURE__*/_defineComponent({
  72. ...__default__,
  73. setup(__props) {
  74. x()
  75. return { x }
  76. }
  77. })"
  78. `;
  79. exports[`SFC compile <script setup> > <script> and <script setup> co-usage > script setup first, named default export 1`] = `
  80. "export const n = 1
  81. const def = {}
  82. const __default__ = def
  83. import { x } from './x'
  84. export default /*#__PURE__*/Object.assign(__default__, {
  85. setup(__props) {
  86. x()
  87. return { n, def, x }
  88. }
  89. })"
  90. `;
  91. exports[`SFC compile <script setup> > <script> and <script setup> co-usage > spaces in ExportDefaultDeclaration node > with many spaces and newline 1`] = `
  92. "import { x } from './x'
  93. export const n = 1
  94. const __default__ = {
  95. some:'option'
  96. }
  97. export default /*#__PURE__*/Object.assign(__default__, {
  98. setup(__props) {
  99. x()
  100. return { n, x }
  101. }
  102. })"
  103. `;
  104. exports[`SFC compile <script setup> > <script> and <script setup> co-usage > spaces in ExportDefaultDeclaration node > with minimal spaces 1`] = `
  105. "import { x } from './x'
  106. export const n = 1
  107. const __default__ = {
  108. some:'option'
  109. }
  110. export default /*#__PURE__*/Object.assign(__default__, {
  111. setup(__props) {
  112. x()
  113. return { n, x }
  114. }
  115. })"
  116. `;
  117. exports[`SFC compile <script setup> > binding analysis for destructure 1`] = `
  118. "export default {
  119. setup(__props) {
  120. const { foo, b: bar, ['x' + 'y']: baz, x: { y, zz: { z }}} = {}
  121. return { foo, bar, baz, y, z }
  122. }
  123. }"
  124. `;
  125. exports[`SFC compile <script setup> > defineEmits() 1`] = `
  126. "export default {
  127. emits: ['foo', 'bar'],
  128. setup(__props, { emit: myEmit }) {
  129. return { myEmit }
  130. }
  131. }"
  132. `;
  133. exports[`SFC compile <script setup> > defineExpose() 1`] = `
  134. "export default {
  135. setup(__props, { expose }) {
  136. expose({ foo: 123 })
  137. return { }
  138. }
  139. }"
  140. `;
  141. exports[`SFC compile <script setup> > defineProps w/ external definition 1`] = `
  142. "import { propsModel } from './props'
  143. export default {
  144. props: propsModel,
  145. setup(__props) {
  146. const props = __props;
  147. return { props, propsModel }
  148. }
  149. }"
  150. `;
  151. exports[`SFC compile <script setup> > defineProps w/ leading code 1`] = `
  152. "import { x } from './x'
  153. export default {
  154. props: {},
  155. setup(__props) {
  156. const props = __props;
  157. return { props, x }
  158. }
  159. }"
  160. `;
  161. exports[`SFC compile <script setup> > defineProps() 1`] = `
  162. "export default {
  163. props: {
  164. foo: String
  165. },
  166. setup(__props) {
  167. const props = __props;
  168. const bar = 1
  169. return { props, bar }
  170. }
  171. }"
  172. `;
  173. exports[`SFC compile <script setup> > defineProps/defineEmits in multi-variable declaration (full removal) 1`] = `
  174. "export default {
  175. props: ['item'],
  176. emits: ['a'],
  177. setup(__props, { emit }) {
  178. const props = __props;
  179. return { props, emit }
  180. }
  181. }"
  182. `;
  183. exports[`SFC compile <script setup> > defineProps/defineEmits in multi-variable declaration 1`] = `
  184. "export default {
  185. props: ['item'],
  186. emits: ['a'],
  187. setup(__props, { emit }) {
  188. const props = __props;
  189. const a = 1;
  190. return { props, a, emit }
  191. }
  192. }"
  193. `;
  194. exports[`SFC compile <script setup> > defineProps/defineEmits in multi-variable declaration fix #6757 1`] = `
  195. "export default {
  196. props: ['item'],
  197. emits: ['a'],
  198. setup(__props, { emit }) {
  199. const props = __props;
  200. const a = 1;
  201. return { a, props, emit }
  202. }
  203. }"
  204. `;
  205. exports[`SFC compile <script setup> > dev mode import usage check > TS annotations 1`] = `
  206. "import { defineComponent as _defineComponent } from 'vue'
  207. import { Foo, Baz, Qux, Fred } from './x'
  208. export default /*#__PURE__*/_defineComponent({
  209. setup(__props) {
  210. const a = 1
  211. function b() {}
  212. return { a, b, Baz }
  213. }
  214. })"
  215. `;
  216. exports[`SFC compile <script setup> > dev mode import usage check > attribute expressions 1`] = `
  217. "import { defineComponent as _defineComponent } from 'vue'
  218. import { bar, baz } from './x'
  219. export default /*#__PURE__*/_defineComponent({
  220. setup(__props) {
  221. const cond = true
  222. return { cond, bar, baz }
  223. }
  224. })"
  225. `;
  226. exports[`SFC compile <script setup> > dev mode import usage check > components 1`] = `
  227. "import { defineComponent as _defineComponent } from 'vue'
  228. import { FooBar, FooBaz, FooQux, foo } from './x'
  229. export default /*#__PURE__*/_defineComponent({
  230. setup(__props) {
  231. const fooBar: FooBar = 1
  232. return { fooBar, FooBaz, FooQux, foo }
  233. }
  234. })"
  235. `;
  236. exports[`SFC compile <script setup> > dev mode import usage check > directive 1`] = `
  237. "import { defineComponent as _defineComponent } from 'vue'
  238. import { vMyDir } from './x'
  239. export default /*#__PURE__*/_defineComponent({
  240. setup(__props) {
  241. return { vMyDir }
  242. }
  243. })"
  244. `;
  245. exports[`SFC compile <script setup> > dev mode import usage check > imported ref as template ref 1`] = `
  246. "import { defineComponent as _defineComponent } from 'vue'
  247. import { aref } from './x'
  248. export default /*#__PURE__*/_defineComponent({
  249. setup(__props) {
  250. return { aref }
  251. }
  252. })"
  253. `;
  254. exports[`SFC compile <script setup> > dev mode import usage check > js template string interpolations 1`] = `
  255. "import { defineComponent as _defineComponent } from 'vue'
  256. import { VAR, VAR2, VAR3 } from './x'
  257. export default /*#__PURE__*/_defineComponent({
  258. setup(__props) {
  259. return { VAR, VAR3 }
  260. }
  261. })"
  262. `;
  263. exports[`SFC compile <script setup> > dev mode import usage check > last tag 1`] = `
  264. "import { defineComponent as _defineComponent } from 'vue'
  265. import { FooBaz, Last } from './x'
  266. export default /*#__PURE__*/_defineComponent({
  267. setup(__props) {
  268. return { FooBaz, Last }
  269. }
  270. })"
  271. `;
  272. exports[`SFC compile <script setup> > dev mode import usage check > vue interpolations 1`] = `
  273. "import { defineComponent as _defineComponent } from 'vue'
  274. import { x, y, z, x$y } from './x'
  275. export default /*#__PURE__*/_defineComponent({
  276. setup(__props) {
  277. return { x, z, x$y }
  278. }
  279. })"
  280. `;
  281. exports[`SFC compile <script setup> > errors > should allow defineProps/Emit() referencing imported binding 1`] = `
  282. "import { bar } from './bar'
  283. export default {
  284. props: {
  285. foo: {
  286. default: () => bar
  287. }
  288. },
  289. emits: {
  290. foo: () => bar > 1
  291. },
  292. setup(__props) {
  293. return { bar }
  294. }
  295. }"
  296. `;
  297. exports[`SFC compile <script setup> > errors > should allow defineProps/Emit() referencing scope var 1`] = `
  298. "export default {
  299. props: {
  300. foo: {
  301. default: bar => bar + 1
  302. }
  303. },
  304. emits: {
  305. foo: bar => bar > 1
  306. },
  307. setup(__props) {
  308. const bar = 1
  309. return { bar }
  310. }
  311. }"
  312. `;
  313. exports[`SFC compile <script setup> > imports > import dedupe between <script> and <script setup> 1`] = `
  314. "import { x } from './x'
  315. export default {
  316. setup(__props) {
  317. x()
  318. return { x }
  319. }
  320. }"
  321. `;
  322. exports[`SFC compile <script setup> > imports > should allow defineProps/Emit at the start of imports 1`] = `
  323. "import { ref } from 'vue'
  324. export default {
  325. props: ['foo'],
  326. emits: ['bar'],
  327. setup(__props) {
  328. const r = ref(0)
  329. return { r, ref }
  330. }
  331. }"
  332. `;
  333. exports[`SFC compile <script setup> > imports > should extract comment for import or type declarations 1`] = `
  334. "import a from 'a' // comment
  335. import b from 'b'
  336. export default {
  337. setup(__props) {
  338. return { a, b }
  339. }
  340. }"
  341. `;
  342. exports[`SFC compile <script setup> > imports > should hoist and expose imports 1`] = `
  343. "import { ref } from 'vue'
  344. import 'foo/css'
  345. export default {
  346. setup(__props) {
  347. return { ref }
  348. }
  349. }"
  350. `;
  351. exports[`SFC compile <script setup> > should expose top level declarations 1`] = `
  352. "import { xx } from './x'
  353. let aa = 1
  354. const bb = 2
  355. function cc() {}
  356. class dd {}
  357. import { x } from './x'
  358. export default {
  359. setup(__props) {
  360. let a = 1
  361. const b = 2
  362. function c() {}
  363. class d {}
  364. return { aa, bb, cc, dd, a, b, c, d, xx, x }
  365. }
  366. }"
  367. `;
  368. exports[`SFC compile <script setup> > with TypeScript > const Enum 1`] = `
  369. "import { defineComponent as _defineComponent } from 'vue'
  370. const enum Foo { A = 123 }
  371. export default /*#__PURE__*/_defineComponent({
  372. setup(__props) {
  373. return { Foo }
  374. }
  375. })"
  376. `;
  377. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (exported interface) 1`] = `
  378. "import { defineComponent as _defineComponent } from 'vue'
  379. export interface Emits { (e: 'foo' | 'bar'): void }
  380. export default /*#__PURE__*/_defineComponent({
  381. emits: ["foo", "bar"],
  382. setup(__props, { emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
  383. return { emit }
  384. }
  385. })"
  386. `;
  387. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (exported type alias) 1`] = `
  388. "import { defineComponent as _defineComponent } from 'vue'
  389. export type Emits = { (e: 'foo' | 'bar'): void }
  390. export default /*#__PURE__*/_defineComponent({
  391. emits: ["foo", "bar"],
  392. setup(__props, { emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
  393. return { emit }
  394. }
  395. })"
  396. `;
  397. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (interface ts type) 1`] = `
  398. "import { defineComponent as _defineComponent } from 'vue'
  399. interface Emits { (e: 'foo'): void }
  400. export default /*#__PURE__*/_defineComponent({
  401. emits: ['foo'],
  402. setup(__props, { emit }) {
  403. return { emit }
  404. }
  405. })"
  406. `;
  407. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (interface) 1`] = `
  408. "import { defineComponent as _defineComponent } from 'vue'
  409. interface Emits { (e: 'foo' | 'bar'): void }
  410. export default /*#__PURE__*/_defineComponent({
  411. emits: ["foo", "bar"],
  412. setup(__props, { emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
  413. return { emit }
  414. }
  415. })"
  416. `;
  417. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (referenced exported function type) 1`] = `
  418. "import { defineComponent as _defineComponent } from 'vue'
  419. export type Emits = (e: 'foo' | 'bar') => void
  420. export default /*#__PURE__*/_defineComponent({
  421. emits: ["foo", "bar"],
  422. setup(__props, { emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
  423. return { emit }
  424. }
  425. })"
  426. `;
  427. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (referenced function type) 1`] = `
  428. "import { defineComponent as _defineComponent } from 'vue'
  429. type Emits = (e: 'foo' | 'bar') => void
  430. export default /*#__PURE__*/_defineComponent({
  431. emits: ["foo", "bar"],
  432. setup(__props, { emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
  433. return { emit }
  434. }
  435. })"
  436. `;
  437. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (type alias) 1`] = `
  438. "import { defineComponent as _defineComponent } from 'vue'
  439. type Emits = { (e: 'foo' | 'bar'): void }
  440. export default /*#__PURE__*/_defineComponent({
  441. emits: ["foo", "bar"],
  442. setup(__props, { emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
  443. return { emit }
  444. }
  445. })"
  446. `;
  447. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (type literal w/ call signatures) 1`] = `
  448. "import { defineComponent as _defineComponent } from 'vue'
  449. export default /*#__PURE__*/_defineComponent({
  450. emits: ["foo", "bar", "baz"],
  451. setup(__props, { emit }: { emit: ({(e: 'foo' | 'bar'): void; (e: 'baz', id: number): void;}), expose: any, slots: any, attrs: any }) {
  452. return { emit }
  453. }
  454. })"
  455. `;
  456. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type 1`] = `
  457. "import { defineComponent as _defineComponent } from 'vue'
  458. export default /*#__PURE__*/_defineComponent({
  459. emits: ["foo", "bar"],
  460. setup(__props, { emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
  461. return { emit }
  462. }
  463. })"
  464. `;
  465. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ exported interface 1`] = `
  466. "import { defineComponent as _defineComponent } from 'vue'
  467. export interface Props { x?: number }
  468. export default /*#__PURE__*/_defineComponent({
  469. props: {
  470. x: { type: Number, required: false }
  471. },
  472. setup(__props: any) {
  473. return { }
  474. }
  475. })"
  476. `;
  477. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ exported interface in normal script 1`] = `
  478. "import { defineComponent as _defineComponent } from 'vue'
  479. export interface Props { x?: number }
  480. export default /*#__PURE__*/_defineComponent({
  481. props: {
  482. x: { type: Number, required: false }
  483. },
  484. setup(__props: any) {
  485. return { }
  486. }
  487. })"
  488. `;
  489. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ exported type alias 1`] = `
  490. "import { defineComponent as _defineComponent } from 'vue'
  491. export type Props = { x?: number }
  492. export default /*#__PURE__*/_defineComponent({
  493. props: {
  494. x: { type: Number, required: false }
  495. },
  496. setup(__props: any) {
  497. return { }
  498. }
  499. })"
  500. `;
  501. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ interface 1`] = `
  502. "import { defineComponent as _defineComponent } from 'vue'
  503. interface Props { x?: number }
  504. export default /*#__PURE__*/_defineComponent({
  505. props: {
  506. x: { type: Number, required: false }
  507. },
  508. setup(__props: any) {
  509. return { }
  510. }
  511. })"
  512. `;
  513. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ type 1`] = `
  514. "import { defineComponent as _defineComponent } from 'vue'
  515. interface Test {}
  516. type Alias = number[]
  517. export default /*#__PURE__*/_defineComponent({
  518. props: {
  519. string: { type: String, required: true },
  520. number: { type: Number, required: true },
  521. boolean: { type: Boolean, required: true },
  522. object: { type: Object, required: true },
  523. objectLiteral: { type: Object, required: true },
  524. fn: { type: Function, required: true },
  525. functionRef: { type: Function, required: true },
  526. objectRef: { type: Object, required: true },
  527. dateTime: { type: Date, required: true },
  528. array: { type: Array, required: true },
  529. arrayRef: { type: Array, required: true },
  530. tuple: { type: Array, required: true },
  531. set: { type: Set, required: true },
  532. literal: { type: String, required: true },
  533. optional: { type: null, required: false },
  534. recordRef: { type: Object, required: true },
  535. interface: { type: Object, required: true },
  536. alias: { type: Array, required: true },
  537. method: { type: Function, required: true },
  538. symbol: { type: Symbol, required: true },
  539. union: { type: [String, Number], required: true },
  540. literalUnion: { type: String, required: true },
  541. literalUnionNumber: { type: Number, required: true },
  542. literalUnionMixed: { type: [String, Number, Boolean], required: true },
  543. intersection: { type: Object, required: true },
  544. foo: { type: [Function, null], required: true }
  545. },
  546. setup(__props: any) {
  547. return { }
  548. }
  549. })"
  550. `;
  551. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ type alias 1`] = `
  552. "import { defineComponent as _defineComponent } from 'vue'
  553. type Props = { x?: number }
  554. export default /*#__PURE__*/_defineComponent({
  555. props: {
  556. x: { type: Number, required: false }
  557. },
  558. setup(__props: any) {
  559. return { }
  560. }
  561. })"
  562. `;
  563. exports[`SFC compile <script setup> > with TypeScript > defineProps/Emit w/ runtime options 1`] = `
  564. "import { defineComponent as _defineComponent } from 'vue'
  565. export default /*#__PURE__*/_defineComponent({
  566. props: { foo: String },
  567. emits: ['a', 'b'],
  568. setup(__props, { emit }) {
  569. const props = __props;
  570. return { props, emit }
  571. }
  572. })"
  573. `;
  574. exports[`SFC compile <script setup> > with TypeScript > hoist type declarations 1`] = `
  575. "import { defineComponent as _defineComponent } from 'vue'
  576. export interface Foo {}
  577. type Bar = {}
  578. export default /*#__PURE__*/_defineComponent({
  579. setup(__props) {
  580. return { }
  581. }
  582. })"
  583. `;
  584. exports[`SFC compile <script setup> > with TypeScript > import type 1`] = `
  585. "import { defineComponent as _defineComponent } from 'vue'
  586. import type { Foo } from './main.ts'
  587. import { type Bar, Baz } from './main.ts'
  588. export default /*#__PURE__*/_defineComponent({
  589. setup(__props) {
  590. return { Baz }
  591. }
  592. })"
  593. `;
  594. exports[`SFC compile <script setup> > with TypeScript > runtime Enum 1`] = `
  595. "import { defineComponent as _defineComponent } from 'vue'
  596. enum Foo { A = 123 }
  597. export default /*#__PURE__*/_defineComponent({
  598. setup(__props) {
  599. return { Foo }
  600. }
  601. })"
  602. `;
  603. exports[`SFC compile <script setup> > with TypeScript > runtime Enum in normal script 1`] = `
  604. "import { defineComponent as _defineComponent } from 'vue'
  605. enum Foo { A = 123 }
  606. export enum D { D = "D" }
  607. const enum C { C = "C" }
  608. enum B { B = "B" }
  609. export default /*#__PURE__*/_defineComponent({
  610. setup(__props) {
  611. return { D, C, B, Foo }
  612. }
  613. })"
  614. `;
  615. exports[`SFC compile <script setup> > with TypeScript > withDefaults (dynamic) 1`] = `
  616. "import { mergeDefaults as _mergeDefaults, defineComponent as _defineComponent } from 'vue'
  617. import { defaults } from './foo'
  618. export default /*#__PURE__*/_defineComponent({
  619. props: _mergeDefaults({
  620. foo: { type: String, required: false },
  621. bar: { type: Number, required: false },
  622. baz: { type: Boolean, required: true }
  623. }, { ...defaults }),
  624. setup(__props: any) {
  625. const props = __props as {
  626. foo?: string
  627. bar?: number
  628. baz: boolean
  629. };
  630. return { props, defaults }
  631. }
  632. })"
  633. `;
  634. exports[`SFC compile <script setup> > with TypeScript > withDefaults (static) 1`] = `
  635. "import { defineComponent as _defineComponent } from 'vue'
  636. export default /*#__PURE__*/_defineComponent({
  637. props: {
  638. foo: { type: String, required: false, default: 'hi' },
  639. bar: { type: Number, required: false },
  640. baz: { type: Boolean, required: true },
  641. qux: { type: Function, required: false, default() { return 1 } }
  642. },
  643. setup(__props: any) {
  644. const props = __props as { foo: string, bar?: number, baz: boolean, qux(): number };
  645. return { props }
  646. }
  647. })"
  648. `;