Open
Description
openedon Jul 30, 2019
When using a custom jsxFactory
, it is currently only possible to use something that is a string
or callable as the JSX element tag. I do not see a reason why there should be such limitation. In my use case I would like to use objects as "blueprints" for my jsx factory.
TypeScript Version: 3.5.1
Search Terms:
jsx jsxFactory object TS2604
Code
/*
* @jsx h
*/
function h (...args: any[]): string {
return 'something';
}
function FuncComponent() {
return '';
}
const StringComponent = 'test';
const ObjectComponent = { key: 'test '};
// works
const dom1 = <FuncComponent text="hello world" />;
// works
const dom3 = <StringComponent text="hello world" />;
// doesnt work
const dom4 = <ObjectComponent text="hello world" />;
Expected behavior:
JSX element <ObjectComponent text="hello world" />
should be translated to h(ObjectComponent, { text: "hello world" })
.
Actual behavior:
Typescript throws an error: JSX element type 'ObjectComponent' does not have any construct or call signatures.
Related Issues:
N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment