| @@ -596,6 +596,65 @@ describe('resolveType', () => { |
|
|
| 596 |
596 |
}) |
| 597 |
597 |
}) |
| 598 |
598 |
|
|
599 |
+test('keyof: nested object with number', () => { |
|
600 |
+const { props } = resolve( |
|
601 |
+` |
|
602 |
+ interface Type { |
|
603 |
+ deep: { |
|
604 |
+ 1: any |
|
605 |
+ } |
|
606 |
+ } |
|
607 |
+ |
|
608 |
+ defineProps<{ |
|
609 |
+ route: keyof Type['deep'] |
|
610 |
+ }>()`, |
|
611 |
+) |
|
612 |
+ |
|
613 |
+expect(props).toStrictEqual({ |
|
614 |
+route: ['Number'], |
|
615 |
+}) |
|
616 |
+}) |
|
617 |
+ |
|
618 |
+test('keyof: nested object with string', () => { |
|
619 |
+const { props } = resolve( |
|
620 |
+` |
|
621 |
+ interface Type { |
|
622 |
+ deep: { |
|
623 |
+ foo: any |
|
624 |
+ } |
|
625 |
+ } |
|
626 |
+ |
|
627 |
+ defineProps<{ |
|
628 |
+ route: keyof Type['deep'] |
|
629 |
+ }>()`, |
|
630 |
+) |
|
631 |
+ |
|
632 |
+expect(props).toStrictEqual({ |
|
633 |
+route: ['String'], |
|
634 |
+}) |
|
635 |
+}) |
|
636 |
+ |
|
637 |
+test('keyof: nested object with intermediate', () => { |
|
638 |
+const { props } = resolve( |
|
639 |
+` |
|
640 |
+ interface Type { |
|
641 |
+ deep: { |
|
642 |
+ foo: any |
|
643 |
+ } |
|
644 |
+ } |
|
645 |
+ |
|
646 |
+ type Foo = Type['deep'] |
|
647 |
+ |
|
648 |
+ defineProps<{ |
|
649 |
+ route: keyof Foo |
|
650 |
+ }>()`, |
|
651 |
+) |
|
652 |
+ |
|
653 |
+expect(props).toStrictEqual({ |
|
654 |
+route: ['String'], |
|
655 |
+}) |
|
656 |
+}) |
|
657 |
+ |
| 599 |
658 |
test('ExtractPropTypes (element-plus)', () => { |
| 600 |
659 |
const { props, raw } = resolve( |
| 601 |
660 |
` |