Skip to content

Commit 6fa64e2

Browse files
authored
Merge pull request #76 from zhangzhonghe/master
type: 完善 properties 类型推断
2 parents f972da4 + edaa402 commit 6fa64e2

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ type ComputedOptions<
1919
TWatch extends Record<string, (...args: any[]) => void>,
2020
TComputed extends Record<
2121
string,
22-
(data: TData & { [K in keyof TProperty]: any }) => any
22+
(data: TData & WechatMiniprogram.Component.PropertyOptionToData<TProperty>) => any
2323
>,
2424
TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {},
2525
> = (Partial<WechatMiniprogram.Component.Data<TData>> &
@@ -48,7 +48,7 @@ export function ComponentWithComputed<
4848
TWatch extends Record<string, (...args: any[]) => void>,
4949
TComputed extends Record<
5050
string,
51-
(data: TData & { [K in keyof TProperty]: any }) => any
51+
(data: TData & WechatMiniprogram.Component.PropertyOptionToData<TProperty>) => any
5252
>,
5353
TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {},
5454
>(
@@ -75,7 +75,7 @@ export function BehaviorWithComputed<
7575
TWatch extends Record<string, (...args: any[]) => void>,
7676
TComputed extends Record<
7777
string,
78-
(data: TData & { [K in keyof TProperty]: any }) => any
78+
(data: TData & WechatMiniprogram.Component.PropertyOptionToData<TProperty>) => any
7979
>,
8080
TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {},
8181
>(

types/index.d.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ declare type ComputedInstance<D extends WechatMiniprogram.Component.DataOption,
99
[K in keyof P]: any;
1010
};
1111
};
12-
declare type ComputedOptions<TData extends WechatMiniprogram.Component.DataOption, TProperty extends WechatMiniprogram.Component.PropertyOption, TMethod extends WechatMiniprogram.Component.MethodOption, TWatch extends Record<string, (...args: any[]) => void>, TComputed extends Record<string, (data: TData & {
13-
[K in keyof TProperty]: any;
14-
}) => any>, TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {}> = (Partial<WechatMiniprogram.Component.Data<TData>> & Partial<WechatMiniprogram.Component.Property<TProperty>> & Partial<WechatMiniprogram.Component.Method<TMethod>> & Partial<WechatMiniprogram.Component.OtherOption> & Partial<WechatMiniprogram.Component.Lifetimes> & {
12+
declare type ComputedOptions<TData extends WechatMiniprogram.Component.DataOption, TProperty extends WechatMiniprogram.Component.PropertyOption, TMethod extends WechatMiniprogram.Component.MethodOption, TWatch extends Record<string, (...args: any[]) => void>, TComputed extends Record<string, (
13+
data: TData & WechatMiniprogram.Component.PropertyOptionToData<TProperty>
14+
) => any>, TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {}> = (Partial<WechatMiniprogram.Component.Data<TData>> & Partial<WechatMiniprogram.Component.Property<TProperty>> & Partial<WechatMiniprogram.Component.Method<TMethod>> & Partial<WechatMiniprogram.Component.OtherOption> & Partial<WechatMiniprogram.Component.Lifetimes> & {
1515
watch?: TWatch;
1616
computed?: TComputed;
1717
template?: string;
1818
}) & ThisType<ComputedInstance<TData, TProperty, TMethod, TComputed, TCustomInstanceProperty>>;
19-
export declare function ComponentWithComputed<TData extends WechatMiniprogram.Component.DataOption, TProperty extends WechatMiniprogram.Component.PropertyOption, TMethod extends WechatMiniprogram.Component.MethodOption, TWatch extends Record<string, (...args: any[]) => void>, TComputed extends Record<string, (data: TData & {
20-
[K in keyof TProperty]: any;
21-
}) => any>, TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {}>(options: ComputedOptions<TData, TProperty, TMethod, TWatch, TComputed, TCustomInstanceProperty>): string;
22-
export declare function BehaviorWithComputed<TData extends WechatMiniprogram.Behavior.DataOption, TProperty extends WechatMiniprogram.Behavior.PropertyOption, TMethod extends WechatMiniprogram.Behavior.MethodOption, TWatch extends Record<string, (...args: any[]) => void>, TComputed extends Record<string, (data: TData & {
23-
[K in keyof TProperty]: any;
24-
}) => any>, TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {}>(options: ComputedOptions<TData, TProperty, TMethod, TWatch, TComputed, TCustomInstanceProperty>): string;
19+
export declare function ComponentWithComputed<TData extends WechatMiniprogram.Component.DataOption, TProperty extends WechatMiniprogram.Component.PropertyOption, TMethod extends WechatMiniprogram.Component.MethodOption, TWatch extends Record<string, (...args: any[]) => void>, TComputed extends Record<string, (
20+
data: TData & WechatMiniprogram.Component.PropertyOptionToData<TProperty>
21+
) => any>, TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {}>(options: ComputedOptions<TData, TProperty, TMethod, TWatch, TComputed, TCustomInstanceProperty>): string;
22+
export declare function BehaviorWithComputed<TData extends WechatMiniprogram.Behavior.DataOption, TProperty extends WechatMiniprogram.Behavior.PropertyOption, TMethod extends WechatMiniprogram.Behavior.MethodOption, TWatch extends Record<string, (...args: any[]) => void>, TComputed extends Record<string, (
23+
data: TData & WechatMiniprogram.Component.PropertyOptionToData<TProperty>
24+
) => any>, TCustomInstanceProperty extends WechatMiniprogram.IAnyObject = {}>(options: ComputedOptions<TData, TProperty, TMethod, TWatch, TComputed, TCustomInstanceProperty>): string;
2525
export declare enum DataTracerMode {
2626
Auto = 0,
2727
Proxy = 1,

0 commit comments

Comments
 (0)