在vue3和pinia使用ts
type+sId+zId 三个都会报 “property type does not exist on object”
//定义
state: (): IUserState => ({
sId: '', //展会ID
zId: '', //剧本ID
type: '1', //1讲座 0展会
}),
//方法
actions:{
setSId(data: object) {
this.type = data.type
this.sId = data.sId
this.zId = data.zId
},
}
//使用
profileStore.setSId({
type: '1',
sId: '',
zId: id
})
新补充
v1,v2...是接口返回来的,自己重新定义了新key,v1写在IUserState了没有报错,其他都飘红
interface IUserState {
v1:string,
}
setInfo(data: IUserState) {
this.extensionId = data.v1;
this.enterTags = data.v2;
this.employeeLogin = data.v3;
this.cityList = data.v4;
this.aId = data.v5;
this.aName = data.v6;
this.roleId = data.v7;
this.roleName = data.v8;
this.userType = data.v9;
},
object
类型只能表示对象类型(非原始类型),但是并不能访问具体属性。即 TS 只知道其是个对象,但不知拥有哪些属性。所以对于知道具体属性的对象类型,需要使用
interface
或者type
进行精确定义。补充回答:
对于结构是对象(键值对),但是字段具体类型未知的类型可以使用
Record
类型。