Skip to content
This repository was archived by the owner on Nov 5, 2023. It is now read-only.

Commit c05f1ab

Browse files
committed
refactor: improve the typing of fromProp
1 parent 93a82a2 commit c05f1ab

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/Grid.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ export default defineComponent({
7070
},
7171
setup(props) {
7272
// region: props
73-
const length$ = fromProp<number>("length", props);
74-
const pageSize$ = fromProp<number>("pageSize", props);
75-
const pageProvider$ = fromProp<PageProvider>("pageProvider", props);
73+
const length$ = fromProp(props, "length");
74+
const pageSize$ = fromProp(props, "pageSize");
75+
const pageProvider$ = fromProp(props, "pageProvider");
7676
// endregion
7777
7878
// region: refs

src/utilites.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import { partial, pipe, unary } from "ramda";
44
import { useResizeObserver } from "@vueuse/core";
55
import { mergeAll } from "rxjs/operators";
66

7-
export function fromProp<T>(
8-
propName: string,
9-
props: Record<string, any>
10-
): Observable<T> {
11-
return new Observable<T>((subscriber) =>
7+
export function fromProp<T, U extends keyof T>(
8+
props: T,
9+
propName: U
10+
): Observable<T[U]> {
11+
return new Observable((subscriber) =>
1212
watchEffect(() => subscriber.next(props[propName]))
1313
);
1414
}

0 commit comments

Comments
 (0)