Skip to content

Commit 5ecc4be

Browse files
committed
Draft: Add jsx autoComplete types from the DOM
See microsoft/TypeScript-DOM-lib-generator#1467
1 parent 29922e5 commit 5ecc4be

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

types/react-dom/test/react-dom-tests.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ describe("React dom test utils", () => {
9999
const node = ReactDOM.findDOMNode(dom) as HTMLInputElement;
100100

101101
node.value = "giraffe";
102+
// @ts-expect-error
103+
node.autocomplete = "password";
104+
node.autocomplete = "username webauthn";
102105
ReactTestUtils.Simulate.change(node);
103106
ReactTestUtils.Simulate.keyDown(node, { key: "Enter", keyCode: 13, which: 13 });
104107
});

types/react/index.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2068,7 +2068,7 @@ declare namespace React {
20682068
alt?: string | undefined;
20692069
as?: string | undefined;
20702070
async?: boolean | undefined;
2071-
autoComplete?: string | undefined;
2071+
autoComplete?: HTMLInputElement['autocomplete'];
20722072
autoPlay?: boolean | undefined;
20732073
capture?: boolean | "user" | "environment" | undefined;
20742074
cellPadding?: number | string | undefined;
@@ -2294,7 +2294,7 @@ declare namespace React {
22942294
| DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[
22952295
keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS
22962296
];
2297-
autoComplete?: string | undefined;
2297+
autoComplete?: HTMLFormElement['autocomplete'];
22982298
encType?: string | undefined;
22992299
method?: string | undefined;
23002300
name?: string | undefined;
@@ -2376,7 +2376,7 @@ declare namespace React {
23762376
interface InputHTMLAttributes<T> extends HTMLAttributes<T> {
23772377
accept?: string | undefined;
23782378
alt?: string | undefined;
2379-
autoComplete?: string | undefined;
2379+
autoComplete?: HTMLInputElement['autocomplete'];
23802380
capture?: boolean | "user" | "environment" | undefined; // https://www.w3.org/TR/html-media-capture/#the-capture-attribute
23812381
checked?: boolean | undefined;
23822382
disabled?: boolean | undefined;
@@ -2555,7 +2555,7 @@ declare namespace React {
25552555
}
25562556

25572557
interface SelectHTMLAttributes<T> extends HTMLAttributes<T> {
2558-
autoComplete?: string | undefined;
2558+
autoComplete?: HTMLSelectElement['autocomplete'];
25592559
disabled?: boolean | undefined;
25602560
form?: string | undefined;
25612561
multiple?: boolean | undefined;
@@ -2595,7 +2595,7 @@ declare namespace React {
25952595
}
25962596

25972597
interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {
2598-
autoComplete?: string | undefined;
2598+
autoComplete?: HTMLTextAreaElement['autocomplete'];
25992599
cols?: number | undefined;
26002600
dirName?: string | undefined;
26012601
disabled?: boolean | undefined;

types/react/test/elementAttributes.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ const testCases = [
2323
<span autoCapitalize="on" />,
2424
<span autoCapitalize="words" />,
2525
<span autoCapitalize="sentences" />,
26+
<input autoComplete="off" />,
27+
<input autoComplete="username webauthn" />,
2628
<span autoCorrect="off" />,
2729
<span autoCorrect="on" />,
2830
<span translate="no" />,

0 commit comments

Comments
 (0)