Skip to content

Commit 924059d

Browse files
committed
support falsy values null & false
1 parent 8912c9f commit 924059d

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

packages/dts-test/tsx.test-d.tsx

+25-1
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,34 @@ expectType<JSX.Element>(<div style={[{ color: 'red' }]} />)
1616
expectType<JSX.Element>(
1717
<div style={[{ color: 'red' }, [{ fontSize: '1em' }]]} />
1818
)
19+
20+
// #7955
1921
expectType<JSX.Element>(
20-
<div style={[undefined, {background: 'green'}]} />
22+
<div style={[undefined, '', null, false]} />
2123
)
2224

25+
expectType<JSX.Element>(
26+
<div style={undefined} />
27+
)
28+
29+
expectType<JSX.Element>(
30+
<div style={null} />
31+
)
32+
33+
expectType<JSX.Element>(
34+
<div style={''} />
35+
)
36+
37+
expectType<JSX.Element>(
38+
<div style={false} />
39+
)
40+
41+
// @ts-expect-error
42+
;<div style={[0]} />
43+
44+
// @ts-expect-error
45+
;<div style={0} />
46+
2347
// @ts-expect-error unknown prop
2448
;<div foo="bar" />
2549

packages/runtime-dom/src/jsx.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ interface AriaAttributes {
234234
}
235235

236236
// Vue's style normalization supports nested arrays
237-
export type StyleValue = undefined | string | CSSProperties | Array<StyleValue>
237+
export type StyleValue = false | null | undefined | string | CSSProperties | Array<StyleValue>
238238

239239
export interface HTMLAttributes extends AriaAttributes, EventHandlers<Events> {
240240
innerHTML?: string

0 commit comments

Comments
 (0)