什么是 ”?”做变量定义?

时间:2019-01-30 07:50:30

标签: typescript

我有时看到人们使用“?”在变量定义imageURL?: string;中,我不知道用在什么地方。这是我在本地存储中找到的一些示例代码:

interface Account {
    displayName: string;
    id: string;
    imageURL?: string;
    name?: string;
    rpDisplayName: string;
}

interface AddEventListenerOptions extends EventListenerOptions {
    once?: boolean;
    passive?: boolean;
}

1 个答案:

答案 0 :(得分:3)

语言为打字稿,并且此问号将属性标记为可选

interface Animal {
    legs: number;
    wings?: number;
}

根据此定义,您可以执行以下操作:

const cat: Animal = { legs: 4 };
const bird: Animal = { legs: 2, wings: 2 };

来自Typescript doc

  

可能不需要接口的所有属性。有些在某些条件下存在或根本不存在。在创建诸如“选项袋”之类的模式时,这些可选属性很流行,在这种模式中,您将对象传递给仅填充了几个属性的函数。