ionic-team / ionic-team/ionic-framework
bug: DatetimeChangeEventDetail value attribute has wrong type
- Langage dominant
- TypeScript
- Étoiles
- 52.7k
- Forks
- 13.3k
- Merge moyen
- 1 j 14 h
- PR mergées (30 j)
- 50
Description
### 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_
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par @ionic/core/dist/types/components/datetime/datetime-interface.d.ts et comparez DatetimeChangeEventDetail avec la spécification liée de l’API datetime. Confirmez où cette déclaration est maintenue avant de la modifier. C’est terminé lorsque le type de valeur du détail de l’événement correspond au contrat documenté string ou null et que la reproduction TypeScript ne génère plus d’erreur.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- frontend
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 52/100