// @strict: true // @jsx: preserve namespace JSX { export interface Element { type: 'element'; } export interface ElementClass { type: 'element-class'; } } function FunctionComponent({type}: {type?: T}) { return { type } } FunctionComponent.useThis = function() { return ; } class ClassComponent { type = 'string'; } const MixedComponent = Math.random() ? FunctionComponent : ClassComponent; const elem1 = ; const elem2 = />; const elem3 = ; const elem4 = ; const obj = { MemberFunctionComponent() { return {}; }, MemberClassComponent: class {}, }; const elem5 = ; const elem6 = ;