compileScript.spec.ts.snap 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957
  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 > js template string interpolations 1`] = `
  246. "import { defineComponent as _defineComponent } from 'vue'
  247. import { VAR, VAR2, VAR3 } from './x'
  248. export default /*#__PURE__*/_defineComponent({
  249. setup(__props) {
  250. return { VAR, VAR3 }
  251. }
  252. })"
  253. `;
  254. exports[`SFC compile <script setup> > dev mode import usage check > last tag 1`] = `
  255. "import { defineComponent as _defineComponent } from 'vue'
  256. import { FooBaz, Last } from './x'
  257. export default /*#__PURE__*/_defineComponent({
  258. setup(__props) {
  259. return { FooBaz, Last }
  260. }
  261. })"
  262. `;
  263. exports[`SFC compile <script setup> > dev mode import usage check > vue interpolations 1`] = `
  264. "import { defineComponent as _defineComponent } from 'vue'
  265. import { x, y, z, x$y } from './x'
  266. export default /*#__PURE__*/_defineComponent({
  267. setup(__props) {
  268. return { x, z, x$y }
  269. }
  270. })"
  271. `;
  272. exports[`SFC compile <script setup> > errors > should allow defineProps/Emit() referencing imported binding 1`] = `
  273. "import { bar } from './bar'
  274. export default {
  275. props: {
  276. foo: {
  277. default: () => bar
  278. }
  279. },
  280. emits: {
  281. foo: () => bar > 1
  282. },
  283. setup(__props) {
  284. return { bar }
  285. }
  286. }"
  287. `;
  288. exports[`SFC compile <script setup> > errors > should allow defineProps/Emit() referencing scope var 1`] = `
  289. "export default {
  290. props: {
  291. foo: {
  292. default: bar => bar + 1
  293. }
  294. },
  295. emits: {
  296. foo: bar => bar > 1
  297. },
  298. setup(__props) {
  299. const bar = 1
  300. return { bar }
  301. }
  302. }"
  303. `;
  304. exports[`SFC compile <script setup> > imports > import dedupe between <script> and <script setup> 1`] = `
  305. "import { x } from './x'
  306. export default {
  307. setup(__props) {
  308. x()
  309. return { x }
  310. }
  311. }"
  312. `;
  313. exports[`SFC compile <script setup> > imports > should allow defineProps/Emit at the start of imports 1`] = `
  314. "import { ref } from 'vue'
  315. export default {
  316. props: ['foo'],
  317. emits: ['bar'],
  318. setup(__props) {
  319. const r = ref(0)
  320. return { r, ref }
  321. }
  322. }"
  323. `;
  324. exports[`SFC compile <script setup> > imports > should extract comment for import or type declarations 1`] = `
  325. "import a from 'a' // comment
  326. import b from 'b'
  327. export default {
  328. setup(__props) {
  329. return { a, b }
  330. }
  331. }"
  332. `;
  333. exports[`SFC compile <script setup> > imports > should hoist and expose imports 1`] = `
  334. "import { ref } from 'vue'
  335. import 'foo/css'
  336. export default {
  337. setup(__props) {
  338. return { ref }
  339. }
  340. }"
  341. `;
  342. exports[`SFC compile <script setup> > should expose top level declarations 1`] = `
  343. "import { xx } from './x'
  344. let aa = 1
  345. const bb = 2
  346. function cc() {}
  347. class dd {}
  348. import { x } from './x'
  349. export default {
  350. setup(__props) {
  351. let a = 1
  352. const b = 2
  353. function c() {}
  354. class d {}
  355. return { aa, bb, cc, dd, a, b, c, d, xx, x }
  356. }
  357. }"
  358. `;
  359. exports[`SFC compile <script setup> > with TypeScript > const Enum 1`] = `
  360. "import { defineComponent as _defineComponent } from 'vue'
  361. const enum Foo { A = 123 }
  362. export default /*#__PURE__*/_defineComponent({
  363. setup(__props) {
  364. return { Foo }
  365. }
  366. })"
  367. `;
  368. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (exported interface) 1`] = `
  369. "import { defineComponent as _defineComponent } from 'vue'
  370. export interface Emits { (e: 'foo' | 'bar'): void }
  371. export default /*#__PURE__*/_defineComponent({
  372. emits: [\\"foo\\", \\"bar\\"],
  373. setup(__props, { emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
  374. return { emit }
  375. }
  376. })"
  377. `;
  378. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (exported type alias) 1`] = `
  379. "import { defineComponent as _defineComponent } from 'vue'
  380. export type Emits = { (e: 'foo' | 'bar'): void }
  381. export default /*#__PURE__*/_defineComponent({
  382. emits: [\\"foo\\", \\"bar\\"],
  383. setup(__props, { emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
  384. return { emit }
  385. }
  386. })"
  387. `;
  388. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (interface ts type) 1`] = `
  389. "import { defineComponent as _defineComponent } from 'vue'
  390. interface Emits { (e: 'foo'): void }
  391. export default /*#__PURE__*/_defineComponent({
  392. emits: ['foo'],
  393. setup(__props, { emit }) {
  394. return { emit }
  395. }
  396. })"
  397. `;
  398. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (interface) 1`] = `
  399. "import { defineComponent as _defineComponent } from 'vue'
  400. interface Emits { (e: 'foo' | 'bar'): void }
  401. export default /*#__PURE__*/_defineComponent({
  402. emits: [\\"foo\\", \\"bar\\"],
  403. setup(__props, { emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
  404. return { emit }
  405. }
  406. })"
  407. `;
  408. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (referenced exported function type) 1`] = `
  409. "import { defineComponent as _defineComponent } from 'vue'
  410. export type Emits = (e: 'foo' | 'bar') => void
  411. export default /*#__PURE__*/_defineComponent({
  412. emits: [\\"foo\\", \\"bar\\"],
  413. setup(__props, { emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
  414. return { emit }
  415. }
  416. })"
  417. `;
  418. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (referenced function type) 1`] = `
  419. "import { defineComponent as _defineComponent } from 'vue'
  420. type Emits = (e: 'foo' | 'bar') => void
  421. export default /*#__PURE__*/_defineComponent({
  422. emits: [\\"foo\\", \\"bar\\"],
  423. setup(__props, { emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
  424. return { emit }
  425. }
  426. })"
  427. `;
  428. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (type alias) 1`] = `
  429. "import { defineComponent as _defineComponent } from 'vue'
  430. type Emits = { (e: 'foo' | 'bar'): void }
  431. export default /*#__PURE__*/_defineComponent({
  432. emits: [\\"foo\\", \\"bar\\"],
  433. setup(__props, { emit }: { emit: ({ (e: 'foo' | 'bar'): void }), expose: any, slots: any, attrs: any }) {
  434. return { emit }
  435. }
  436. })"
  437. `;
  438. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type (type literal w/ call signatures) 1`] = `
  439. "import { defineComponent as _defineComponent } from 'vue'
  440. export default /*#__PURE__*/_defineComponent({
  441. emits: [\\"foo\\", \\"bar\\", \\"baz\\"],
  442. setup(__props, { emit }: { emit: ({(e: 'foo' | 'bar'): void; (e: 'baz', id: number): void;}), expose: any, slots: any, attrs: any }) {
  443. return { emit }
  444. }
  445. })"
  446. `;
  447. exports[`SFC compile <script setup> > with TypeScript > defineEmits w/ type 1`] = `
  448. "import { defineComponent as _defineComponent } from 'vue'
  449. export default /*#__PURE__*/_defineComponent({
  450. emits: [\\"foo\\", \\"bar\\"],
  451. setup(__props, { emit }: { emit: ((e: 'foo' | 'bar') => void), expose: any, slots: any, attrs: any }) {
  452. return { emit }
  453. }
  454. })"
  455. `;
  456. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ exported interface 1`] = `
  457. "import { defineComponent as _defineComponent } from 'vue'
  458. export interface Props { x?: number }
  459. export default /*#__PURE__*/_defineComponent({
  460. props: {
  461. x: { type: Number, required: false }
  462. },
  463. setup(__props: any) {
  464. return { }
  465. }
  466. })"
  467. `;
  468. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ exported interface in normal script 1`] = `
  469. "import { defineComponent as _defineComponent } from 'vue'
  470. export interface Props { x?: number }
  471. export default /*#__PURE__*/_defineComponent({
  472. props: {
  473. x: { type: Number, required: false }
  474. },
  475. setup(__props: any) {
  476. return { }
  477. }
  478. })"
  479. `;
  480. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ exported type alias 1`] = `
  481. "import { defineComponent as _defineComponent } from 'vue'
  482. export type Props = { x?: number }
  483. export default /*#__PURE__*/_defineComponent({
  484. props: {
  485. x: { type: Number, required: false }
  486. },
  487. setup(__props: any) {
  488. return { }
  489. }
  490. })"
  491. `;
  492. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ interface 1`] = `
  493. "import { defineComponent as _defineComponent } from 'vue'
  494. interface Props { x?: number }
  495. export default /*#__PURE__*/_defineComponent({
  496. props: {
  497. x: { type: Number, required: false }
  498. },
  499. setup(__props: any) {
  500. return { }
  501. }
  502. })"
  503. `;
  504. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ type 1`] = `
  505. "import { defineComponent as _defineComponent } from 'vue'
  506. interface Test {}
  507. type Alias = number[]
  508. export default /*#__PURE__*/_defineComponent({
  509. props: {
  510. string: { type: String, required: true },
  511. number: { type: Number, required: true },
  512. boolean: { type: Boolean, required: true },
  513. object: { type: Object, required: true },
  514. objectLiteral: { type: Object, required: true },
  515. fn: { type: Function, required: true },
  516. functionRef: { type: Function, required: true },
  517. objectRef: { type: Object, required: true },
  518. dateTime: { type: Date, required: true },
  519. array: { type: Array, required: true },
  520. arrayRef: { type: Array, required: true },
  521. tuple: { type: Array, required: true },
  522. set: { type: Set, required: true },
  523. literal: { type: String, required: true },
  524. optional: { type: null, required: false },
  525. recordRef: { type: Object, required: true },
  526. interface: { type: Object, required: true },
  527. alias: { type: Array, required: true },
  528. method: { type: Function, required: true },
  529. symbol: { type: Symbol, required: true },
  530. union: { type: [String, Number], required: true },
  531. literalUnion: { type: String, required: true },
  532. literalUnionNumber: { type: Number, required: true },
  533. literalUnionMixed: { type: [String, Number, Boolean], required: true },
  534. intersection: { type: Object, required: true },
  535. foo: { type: [Function, null], required: true }
  536. },
  537. setup(__props: any) {
  538. return { }
  539. }
  540. })"
  541. `;
  542. exports[`SFC compile <script setup> > with TypeScript > defineProps w/ type alias 1`] = `
  543. "import { defineComponent as _defineComponent } from 'vue'
  544. type Props = { x?: number }
  545. export default /*#__PURE__*/_defineComponent({
  546. props: {
  547. x: { type: Number, required: false }
  548. },
  549. setup(__props: any) {
  550. return { }
  551. }
  552. })"
  553. `;
  554. exports[`SFC compile <script setup> > with TypeScript > defineProps/Emit w/ runtime options 1`] = `
  555. "import { defineComponent as _defineComponent } from 'vue'
  556. export default /*#__PURE__*/_defineComponent({
  557. props: { foo: String },
  558. emits: ['a', 'b'],
  559. setup(__props, { emit }) {
  560. const props = __props;
  561. return { props, emit }
  562. }
  563. })"
  564. `;
  565. exports[`SFC compile <script setup> > with TypeScript > hoist type declarations 1`] = `
  566. "import { defineComponent as _defineComponent } from 'vue'
  567. export interface Foo {}
  568. type Bar = {}
  569. export default /*#__PURE__*/_defineComponent({
  570. setup(__props) {
  571. return { }
  572. }
  573. })"
  574. `;
  575. exports[`SFC compile <script setup> > with TypeScript > import type 1`] = `
  576. "import { defineComponent as _defineComponent } from 'vue'
  577. import type { Foo } from './main.ts'
  578. import { type Bar, Baz } from './main.ts'
  579. export default /*#__PURE__*/_defineComponent({
  580. setup(__props) {
  581. return { Baz }
  582. }
  583. })"
  584. `;
  585. exports[`SFC compile <script setup> > with TypeScript > runtime Enum 1`] = `
  586. "import { defineComponent as _defineComponent } from 'vue'
  587. enum Foo { A = 123 }
  588. export default /*#__PURE__*/_defineComponent({
  589. setup(__props) {
  590. return { Foo }
  591. }
  592. })"
  593. `;
  594. exports[`SFC compile <script setup> > with TypeScript > runtime Enum in normal script 1`] = `
  595. "import { defineComponent as _defineComponent } from 'vue'
  596. enum Foo { A = 123 }
  597. export enum D { D = \\"D\\" }
  598. const enum C { C = \\"C\\" }
  599. enum B { B = \\"B\\" }
  600. export default /*#__PURE__*/_defineComponent({
  601. setup(__props) {
  602. return { D, C, B, Foo }
  603. }
  604. })"
  605. `;
  606. exports[`SFC compile <script setup> > with TypeScript > withDefaults (dynamic) 1`] = `
  607. "import { mergeDefaults as _mergeDefaults, defineComponent as _defineComponent } from 'vue'
  608. import { defaults } from './foo'
  609. export default /*#__PURE__*/_defineComponent({
  610. props: _mergeDefaults({
  611. foo: { type: String, required: false },
  612. bar: { type: Number, required: false },
  613. baz: { type: Boolean, required: true }
  614. }, { ...defaults }),
  615. setup(__props: any) {
  616. const props = __props as {
  617. foo?: string
  618. bar?: number
  619. baz: boolean
  620. };
  621. return { props, defaults }
  622. }
  623. })"
  624. `;
  625. exports[`SFC compile <script setup> > with TypeScript > withDefaults (static) 1`] = `
  626. "import { defineComponent as _defineComponent } from 'vue'
  627. export default /*#__PURE__*/_defineComponent({
  628. props: {
  629. foo: { type: String, required: false, default: 'hi' },
  630. bar: { type: Number, required: false },
  631. baz: { type: Boolean, required: true },
  632. qux: { type: Function, required: false, default() { return 1 } }
  633. },
  634. setup(__props: any) {
  635. const props = __props as { foo: string, bar?: number, baz: boolean, qux(): number };
  636. return { props }
  637. }
  638. })"
  639. `;