ionic-team / ionic-team/ionic-framework

bug: DatetimeChangeEventDetail value attribute has wrong type

オープン
#30,377 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
needs: investigation
主要言語
TypeScript
スター
52.7k
フォーク
13.3k
平均マージ
1日 14時間
マージ済み PR(30日)
50

説明

### Prerequisites

- [x] I have read the [Contributing Guidelines](https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#creating-an-issue).
- [x] I agree to follow the [Code of Conduct](https://ionicframework.com/code-of-conduct).
- [x] I have searched for [existing issues](https://github.com/ionic-team/ionic-framework/issues) that already report this problem, without success.

### Ionic Framework Version

v8.x

### Current Behavior

The value attribute now has type of:
```
value?: string | string[] | null;
```
in @ ionic\core\dist\types\components\datetime\datetime-interface.d.ts

This does not match the specification given here https://ionicframework.com/docs/api/datetime#datetimechangeeventdetail
```
interface DatetimeChangeEventDetail {
value?: string | null;
}
```

### Expected Behavior

Type should match online documentation.

### Steps to Reproduce

```
const handler = (event: CustomEvent & { target: HTMLIonDatetimeElement }) => {
new Date(event.detail?.value ?? 0)
}
```
gives typescript error: Type 'string[]' is not assignable to type 'string | number'

### Code Reproduction URL

none

### Ionic Info

Ionic:

Ionic CLI : 7.2.0 (C:\Users\[...user...]\AppData\Roaming\npm\node_modules\@ionic\cli)

Capacitor:

Capacitor CLI : 7.2.0
@capacitor/android : 7.2.0
@capacitor/core : 7.2.0
@capacitor/ios : 7.2.0

Utility:

cordova-res : not installed globally
native-run : not installed globally

System:

NodeJS : v22.12.0 (C:\Program Files\nodejs\node.exe)
npm : 11.3.0
OS : Windows 10

### Additional Information

_No response_

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

@ionic/core/dist/types/components/datetime/datetime-interface.d.ts から始め、DatetimeChangeEventDetail をリンク先の datetime API 仕様と比較します。変更する前に、この宣言がどこで管理されているかを確認してください。イベント詳細の値の型が、文書化された string-or-null の契約に一致し、TypeScript の再現コードでエラーが発生しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
typescript
領域
frontend
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
52/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。