打字稿:两种类型之一不适用于接口密钥

时间:2020-05-14 15:29:58

标签: angular typescript typescript-typings

我有一个界面:

df = pd.read_csv("gdp-ppp.csv", encoding = "ISO-8859-1")
df = df.drop(['Unnamed: 2', 'Unnamed: 5', 'Unnamed: 6'], axis=1)
df = df.drop(df.index[0:4])
df = df.drop(df.index[195:])
df = df.drop(df.index[-4:])

df.columns = ['Code', 'Rank', 'Country', 'GDP']

i = 4
for gdp in df["GDP"]:
    gdp = gdp.replace(",", "")
    df["GDP"][i] = float(gdp)
    i += 1

for gdp in df["GDP"]:
    if type(gdp) != type(1.1):
        print(gdp)

在我的一个组件模板中,我读取了属性:

print(gdp)

但是在终端中,我遇到了下一个错误

类型“日期|日期”中不存在属性“ _seconds”时间戳记”。 类型“日期”不存在属性“ _seconds”。

它以export interface User { uid: string; createdAt: Timestamp | Date; } 类型存在,但看起来像typescript并不关心它并引发错误,因为此属性在<span>{{ user.createdAt._seconds }}</span> 类型中不存在。

1 个答案:

答案 0 :(得分:2)

如果可能的话,我建议先转换为单一类型,然后再传递给模板。如果没有,则有两个选择:

标价

如果您知道在这种情况下它始终是时间戳记:

B = [[[],[[13]],[[3],[19]]]

检查实例类型

<span>{{ (user.createdAt as Timestamp)._seconds }}</span>