const counterAccount = this.accountsService.getFirestoreLinked('mas-accounts', this.selectedRelations[idx].accountId);
counterAccount.then(result => {
const state = result.mas.accountSettings.status;
});
我需要将变量state
的值设置为承诺中元素的值。错误消息是"属性MAS在类型上不存在。"
您不必在 counteraccount 上声明类型。您可以在上声明类型>结果。
例如:
// result.ts
export interface IResult {
address: IAddress;
birthdays: { text: string};
mas: IMas;
}
interface IMas {
accountSetting: {
billing: boolean;
gender: string;
member: boolean;
status: string;
}
}
现在声明结果的类型
const counterAccount = this.accountsService.getFirestoreLinked('mas-accounts', this.selectedRelations[idx].accountId);
counterAccount.then((result: IResult) => {
console.log(result);
});
至于您的tslint对使用结果['mas']不满意,这是因为在tslint.ts或tsconfig.ts中有一个特定的规则(我不记得是哪一个)。您可以从配置中删除该规则,但我建议不要这样做,因为它存在于该项目中的特定标准。