我有两个界面:
interface Timestamp {
_seconds: number;
_nanoseconds: number;
}
interface Item {
createdAt: Timestamp | Date;
}
但是编译后出现错误:
Property '_seconds' does not exist on type 'Timestamp | Date'.
我做错了什么?
答案 0 :(得分:3)
您正尝试访问_seconds
上的item.createdAt
,但是由于这是 Union类型,因此TS在运行时不知道其值是否为{ {1}}或Timestamp
,因此警告您,如果是Date
,则Date
不确定。
您可以使用_seconds
运算符检查属性是否存在,在这种情况下,TS会将in
的类型缩小为createdAt
,现在您可以无错误地访问Timestamp
来自编译器:
_seconds