bug(MatFormFieldControl, MatInput): enable empty value for element attributes
- Ngôn ngữ chính
- TypeScript
- Star
- 25k
- Fork
- 6.8k
- Merge trung bình
- 1 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 91
Mô tả
### Is this a regression?
- [x] Yes, this behavior used to work in the previous version
### The previous version in which this bug was not present was
21
### Description
Recent TypeScript 6 flashes out discrepancies in attributes declaration for html/material controls.
For MatInput, as for other controls, TypeScript doesn't allow empty (null or undefined) values.
The `required`, `placeholder`, etc. forces strict datatype while others such as `autocomplete` are optional.
Previous Angluar version 21 handled these cases correct, for example, placeholder in MatFormField.
In my view, all MatFormFieldControl attributes should be optional, to reflect HTML tag design by definition.
It's common to forward optional attributes between components that holds `undefined` value; forcing an issue when refering to HTML tag such as `input` with Angular decoration.
### Reproduction
StackBlitz link: https://stackblitz.com/edit/components-issue-starter-ffzyyuuu?file=src%2Fmain.ts
Steps to reproduce:
See errors for empty placehoder and missing maxlength.
### Expected Behavior
Attributes such as `placeholder` should accept null and undefined.
This should be common among all MatFormFieldControl implementations.
### Actual Behavior
Common attributes doesn't allow empty values.
### Environment
Angular CLI : 22.0.0
Angular : 22.0.0
Node.js : 24.16.0
Package Manager : npm 11.16.0
Operating System : win32 x64
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với bản tái hiện trên StackBlitz và kiểm tra các khai báo TypeScript cho MatInput cùng các triển khai MatFormFieldControl được nêu trong issue. Xác nhận hành vi đối với placeholder trống, maxlength, required và các thuộc tính liên quan, sau đó thêm hoặc cập nhật phạm vi kiểm thử để null và undefined được chấp nhận nhất quán.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- angular, typescript
- Lĩnh vực
- frontend
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 56/100