我有时看到人们使用“?”在变量定义imageURL?: string;
中,我不知道用在什么地方。这是我在本地存储中找到的一些示例代码:
interface Account {
displayName: string;
id: string;
imageURL?: string;
name?: string;
rpDisplayName: string;
}
interface AddEventListenerOptions extends EventListenerOptions {
once?: boolean;
passive?: boolean;
}
答案 0 :(得分:3)
语言为打字稿,并且此问号将属性标记为可选。
interface Animal {
legs: number;
wings?: number;
}
根据此定义,您可以执行以下操作:
const cat: Animal = { legs: 4 };
const bird: Animal = { legs: 2, wings: 2 };
可能不需要接口的所有属性。有些在某些条件下存在或根本不存在。在创建诸如“选项袋”之类的模式时,这些可选属性很流行,在这种模式中,您将对象传递给仅填充了几个属性的函数。