如何在返回的管道(map(..))语句中定义对象类型?



我开始用Angular + Ionic Framework开发一个应用。

我的问题是,我不知道如何在返回的对象上定义类型,以便能够检索特定的属性。

我认为这是一个常见的问题,但我无法找到正确的结果使用谷歌。

当我尝试从设备存储返回我的身份验证令牌时,它看起来像

{
key:'authData',
value: token
}

我无法编译为我的属性在返回的storedData字段中未知。

错误TS2339:属性'value'不存在类型'unknown'.

return from(Storage.get({ key: 'authData' })).pipe(map(storedData => {
if (!storedData || !storedData.value) {
return null;
}
const parsedData = JSON.parse(storedData.value)
}

所以我正在寻找某种类型来定义storedData对象上的接口类型。亲切的问候!

你必须在你的文件顶部声明一个模型

interface StoredData {
key: string;
value: string;
}

然后在后面的代码中:

return from(Storage.get({ key: 'authData' })).pipe(map(storedData: StoredData => {
if (!storedData || !storedData.value) {
return null;
}
const parsedData = JSON.parse(storedData.value)
}

或者,你可以欺骗过滤器:

return from(Storage.get({ key: 'authData' })).pipe(map(storedData => {
if (!storedData || !storedData['value']) {
return null;
}
const parsedData = JSON.parse(storedData['value'])
}

最新更新