@@ -590,6 +590,10 @@ function reactNodeTests() {
590590 }
591591 </ div > ;
592592 < div > { createChildren ( ) } </ div > ;
593+ // @ts -expect-error plain objects are not allowed
594+ < div > { { dave : true } } </ div > ;
595+ // Will not type-check in a real project but accepted in DT tests since experimental.d.ts is part of compilation.
596+ < div > { Promise . resolve ( 'React' ) } </ div > ;
593597}
594598
595599function elementTypeTests ( ) {
@@ -656,6 +660,16 @@ function elementTypeTests() {
656660 }
657661 }
658662
663+ const ReturnPromise = ( ) => Promise . resolve ( 'React' ) ;
664+ // @ts -expect-error experimental release channel only
665+ const FCPromise : React . FC = ReturnPromise ;
666+ class RenderPromise extends React . Component {
667+ // Will not type-check in a real project but accepted in DT tests since experimental.d.ts is part of compilation.
668+ render ( ) {
669+ return Promise . resolve ( 'React' ) ;
670+ }
671+ }
672+
659673 // Desired behavior.
660674 // @ts -expect-error
661675 < ReturnVoid /> ;
@@ -727,6 +741,15 @@ function elementTypeTests() {
727741 React . createElement ( ReturnReactNode ) ;
728742 < RenderReactNode /> ;
729743 React . createElement ( RenderReactNode ) ;
744+
745+ // @ts -expect-error Only available in experimental release channel
746+ < ReturnPromise /> ;
747+ // @ts -expect-error Only available in experimental release channel
748+ React . createElement ( ReturnPromise ) ;
749+ // Will not type-check in a real project but accepted in DT tests since experimental.d.ts is part of compilation.
750+ < RenderPromise /> ;
751+ // Will not type-check in a real project but accepted in DT tests since experimental.d.ts is part of compilation.
752+ React . createElement ( RenderPromise ) ;
730753}
731754
732755function managingRefs ( ) {
0 commit comments