需求:在vue中,form表单,5个场景调同一个方法传入不同的参数,需要拼接字符串,TS校验报错.
第一种:定义form类型,定义参数类型
export interface FormType{
//代表form这个对象里的key是字符串类型(可以有多个key)
[key:string]:unknow
}
export declare type Typekey = 'aaa''|'bbb'
public form:FormType={
aaa:''
aaaText:'aaa'
bbb:''
bbbText:''
}
public onChange(Type:Typekey){
this.form[`${type}Text`] = this.form[`${type}`]==='1'?'同意':'不同意'
}
第二种:定义key类型,定义参数类型
export declare type Typekeys = 'aaa'|'aaaText'|'bbb'|'bbbText'
export declare type Typekey = 'aaa''|'bbb'
public onChange(Type:Typekey){
let key =(type + 'Text') as Typekeys //类型断言
this.form[key] = this.form[type]==='1'?'同意':'不同意'
}