# オプショナルプロパティ

**オプショナルプロパティ**は、オブジェクトのプロパティを**任意なプロパティ（そのプロパティが存在しなくても良い**）として宣言できます。オプショナルプロパティとして宣言する場合は、プロパティ名の後方に`?`をつけることで、宣言できます。

<pre class="language-typescript" data-title="index.ts◎"><code class="lang-typescript">...
  updatedAt: new Date(),
};

<strong>type Meeting = { 
</strong><strong>  startAt: Date
</strong><strong>  kind: 'office' | 'tel' | 'web'
</strong><strong>  url?: string
</strong><strong>}
</strong><strong>
</strong><strong>const meeting1: Meeting = {
</strong><strong>  startAt: new Date(),
</strong><strong>  kind: 'office',
</strong><strong>}
</strong><strong>
</strong><strong>const meeting2: Meeting = {
</strong><strong>  startAt: new Date(),
</strong><strong>  kind: 'web',
</strong><strong>  url: 'https://sample.com',
</strong><strong>}
</strong></code></pre>

また、`url`に`undefined`を格納することはできますが、`null`を格納することはできません。

```typescript
// OK
url: undefined

// NG
url: null
```

`url`に`null`を格納したい場合は、以下のように記述します。

```typescript
 url?: string | null
```
