tsx-test.tsx (vue-2.7.13) | : | tsx-test.tsx (vue-2.7.14) | ||
---|---|---|---|---|
import { VNode, defineComponent, ref } from '../../index' | import { VNode, defineComponent, ref, RenderContext } from '../../index' | |||
import { expectType } from '../utils' | import { expectType } from '../utils' | |||
expectType<VNode>(<div />) | expectType<VNode>(<div />) | |||
expectType<JSX.Element>(<div />) | expectType<JSX.Element>(<div />) | |||
expectType<JSX.Element>(<div id="foo" />) | expectType<JSX.Element>(<div id="foo" />) | |||
expectType<JSX.Element>(<input value="foo" />) | expectType<JSX.Element>(<input value="foo" />) | |||
// @ts-expect-error style css property validation | // @ts-expect-error style css property validation | |||
expectError(<div style={{ unknown: 123 }} />) | expectError(<div style={{ unknown: 123 }} />) | |||
skipping to change at line 28 | skipping to change at line 28 | |||
// @ts-expect-error unknown prop | // @ts-expect-error unknown prop | |||
expectError(<div foo="bar" />) | expectError(<div foo="bar" />) | |||
// allow key/ref on arbitrary element | // allow key/ref on arbitrary element | |||
expectType<JSX.Element>(<div key="foo" />) | expectType<JSX.Element>(<div key="foo" />) | |||
expectType<JSX.Element>(<div ref="bar" />) | expectType<JSX.Element>(<div ref="bar" />) | |||
// allow Ref type type on arbitrary element | // allow Ref type type on arbitrary element | |||
const fooRef = ref<HTMLElement>() | const fooRef = ref<HTMLElement>() | |||
expectType<JSX.Element>(<div ref={fooRef} />) | expectType<JSX.Element>(<div ref={fooRef} />) | |||
expectType<JSX.Element>(<div ref={(el) => {fooRef.value = el as HTMLElement}} /> | expectType<JSX.Element>( | |||
) | <div | |||
ref={el => { | ||||
fooRef.value = el as HTMLElement | ||||
}} | ||||
/> | ||||
) | ||||
expectType<JSX.Element>( | expectType<JSX.Element>( | |||
<input | <input | |||
onInput={e => { | onInput={e => { | |||
// infer correct event type | // infer correct event type | |||
expectType<EventTarget | null>(e.target) | expectType<EventTarget | null>(e.target) | |||
}} | }} | |||
/> | /> | |||
) | ) | |||
skipping to change at line 59 | skipping to change at line 65 | |||
// @ts-expect-error | // @ts-expect-error | |||
;<Foo /> | ;<Foo /> | |||
// @ts-expect-error | // @ts-expect-error | |||
;<Foo bar="1" /> | ;<Foo bar="1" /> | |||
// @ts-expect-error | // @ts-expect-error | |||
;<Foo bar={1} foo={2} /> | ;<Foo bar={1} foo={2} /> | |||
// working | // working | |||
;<Foo bar={1} /> | ;<Foo bar={1} /> | |||
;<Foo bar={1} foo="baz" /> | ;<Foo bar={1} foo="baz" /> | |||
;<div slot="x" /> | ;<div slot="x" /> | |||
export default ({ data }: RenderContext) => { | ||||
return <button {...data} /> | ||||
} | ||||
End of changes. 4 change blocks. | ||||
4 lines changed or deleted | 8 lines changed or added |