angular / angular/components

bug(MatFormFieldControl, MatInput): enable empty value for element attributes

Open
#33,353 1 comment 0 reactions 0 assignees View on GitHub
area: many gemini-triaged P4
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### 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

Contributor guide

Open the contributing guide

Research direction

Start with the StackBlitz reproduction and inspect the TypeScript declarations for MatInput and the MatFormFieldControl implementations named in the issue. Confirm the behavior for empty placeholder, maxlength, required, and related attributes, then add or update coverage so null and undefined are accepted consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
56/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.