|
9 | 9 | expectType,
|
10 | 10 | ShallowUnwrapRef,
|
11 | 11 | FunctionalComponent,
|
12 |
| - ComponentPublicInstance |
| 12 | + ComponentPublicInstance, |
| 13 | + toRefs |
13 | 14 | } from './index'
|
14 | 15 |
|
15 | 16 | declare function extractComponentOptions<Props, RawBindings>(
|
@@ -42,6 +43,27 @@ describe('object props', () => {
|
42 | 43 | object?: object
|
43 | 44 | }
|
44 | 45 |
|
| 46 | + interface ExpectedRefs { |
| 47 | + a: Ref<number | undefined> |
| 48 | + b: Ref<string> |
| 49 | + e: Ref<Function | undefined> |
| 50 | + bb: Ref<string> |
| 51 | + bbb: Ref<string> |
| 52 | + cc: Ref<string[] | undefined> |
| 53 | + dd: Ref<{ n: 1 }> |
| 54 | + ee: Ref<(() => string) | undefined> |
| 55 | + ff: Ref<((a: number, b: string) => { a: boolean }) | undefined> |
| 56 | + ccc: Ref<string[] | undefined> |
| 57 | + ddd: Ref<string[]> |
| 58 | + eee: Ref<() => { a: string }> |
| 59 | + fff: Ref<(a: number, b: string) => { a: boolean }> |
| 60 | + hhh: Ref<boolean> |
| 61 | + ggg: Ref<'foo' | 'bar'> |
| 62 | + ffff: Ref<(a: number, b: string) => { a: boolean }> |
| 63 | + validated: Ref<string | undefined> |
| 64 | + object: Ref<object | undefined> |
| 65 | + } |
| 66 | + |
45 | 67 | describe('defineComponent', () => {
|
46 | 68 | const MyComponent = defineComponent({
|
47 | 69 | props: {
|
@@ -111,6 +133,26 @@ describe('object props', () => {
|
111 | 133 | object: Object as PropType<object>
|
112 | 134 | },
|
113 | 135 | setup(props) {
|
| 136 | + const refs = toRefs(props) |
| 137 | + expectType<ExpectedRefs['a']>(refs.a) |
| 138 | + expectType<ExpectedRefs['b']>(refs.b) |
| 139 | + expectType<ExpectedRefs['e']>(refs.e) |
| 140 | + expectType<ExpectedRefs['bb']>(refs.bb) |
| 141 | + expectType<ExpectedRefs['bbb']>(refs.bbb) |
| 142 | + expectType<ExpectedRefs['cc']>(refs.cc) |
| 143 | + expectType<ExpectedRefs['dd']>(refs.dd) |
| 144 | + expectType<ExpectedRefs['ee']>(refs.ee) |
| 145 | + expectType<ExpectedRefs['ff']>(refs.ff) |
| 146 | + expectType<ExpectedRefs['ccc']>(refs.ccc) |
| 147 | + expectType<ExpectedRefs['ddd']>(refs.ddd) |
| 148 | + expectType<ExpectedRefs['eee']>(refs.eee) |
| 149 | + expectType<ExpectedRefs['fff']>(refs.fff) |
| 150 | + expectType<ExpectedRefs['hhh']>(refs.hhh) |
| 151 | + expectType<ExpectedRefs['ggg']>(refs.ggg) |
| 152 | + expectType<ExpectedRefs['ffff']>(refs.ffff) |
| 153 | + expectType<ExpectedRefs['validated']>(refs.validated) |
| 154 | + expectType<ExpectedRefs['object']>(refs.object) |
| 155 | + |
114 | 156 | return {
|
115 | 157 | setupA: 1,
|
116 | 158 | setupB: ref(1),
|
|
0 commit comments