diff --git a/test/component.test.ts b/test/component.test.ts index cbc52b0..2782d0d 100644 --- a/test/component.test.ts +++ b/test/component.test.ts @@ -29,7 +29,7 @@ Component({ max: { type: Number, value: 0, - observer(newVal: number, oldVal: number) { + observer(newVal, oldVal) { expectType(newVal) expectType(oldVal) expectType(this.onMyButtonTap()) diff --git a/types/wx/lib.wx.component.d.ts b/types/wx/lib.wx.component.d.ts index 6867b78..10f7fb1 100644 --- a/types/wx/lib.wx.component.d.ts +++ b/types/wx/lib.wx.component.d.ts @@ -21,6 +21,7 @@ SOFTWARE. ***************************************************************************** */ declare namespace WechatMiniprogram.Component { + type FilterUnknownProperty = string extends keyof TProperty ? {} : TProperty type Instance< TData extends DataOption, TProperty extends PropertyOption, @@ -34,12 +35,11 @@ declare namespace WechatMiniprogram.Component { MixinMethods & (TIsPage extends true ? Page.ILifetime : {}) & Omit & { - /** 组件数据,**包括内部数据和属性值** */ data: TData & MixinData & - MixinProperties & PropertyOptionToData + MixinProperties & PropertyOptionToData> /** 组件数据,**包括内部数据和属性值**(与 `data` 一致) */ properties: TData & MixinData & - MixinProperties & PropertyOptionToData + MixinProperties & PropertyOptionToData> } type IAnyArray = [] @@ -79,10 +79,8 @@ declare namespace WechatMiniprogram.Component { interface Constructor { < TData extends DataOption, - // 给泛型默认值,避免出现当组件无 properties 选项时 - // 当xxx未在 data 中声明,this.data.xxx 为 any 且不报 TS2339 error 的问题。 - TProperty extends PropertyOption = {}, - TMethod extends MethodOption = {}, + TProperty extends PropertyOption, + TMethod extends MethodOption, TBehavior extends BehaviorOption = [], TCustomInstanceProperty extends IAnyObject = {}, TIsPage extends boolean = false