Skip to content

[jsx-runtime] createElement fallback shoud from @jsxImportSource #41146

Closed
@morlay

Description

@morlay

if using React.createElement, it is a different results from babel, and will broken react-like lib.

why createElement fallback: facebook/react#20031 (comment)

TypeScript Version: 4.1.0-dev.20201015

Search Terms:

Code

/** @jsxImportSource preact */

const keyBeforeSpread = <span key="a" {...props} />
const keyAfterSpread =<span {...props} key="das" />

Expected behavior:

/** @jsxImportSource preact */
import { jsx } from "preact/jsx-runtime"
import { createElement } from "preact"

const keyBeforeSpread = jsx("span", Object.assign({}, props), "a");
const keyAfterSpread = createElement("span", Object.assign({}, props, { key: "das" }));

Actual behavior:

/** @jsxImportSource preact */
const keyBeforeSpread = _jsx("span", Object.assign({}, props), "a");
const keyAfterSpread = React.createElement("span", Object.assign({}, props, { key: "das" }));

Playground Link:
https://www.typescriptlang.org/play?ts=4.1.0-dev.20201015#code/PQKhAIAECsGcA8CSBbADgewE4BcDK6BXTAYwFNxVNSBDY7cEYAKCePQDtZ6BrUgTwBCpAGZZSuSjQAm4ALzgAPLFTV24Xn1kAialvABvAHTHK6VLAC+4YAD5WHLuv4BBYdlKYJVajNlKVakYmmGaWTppaUtSwerZAA

Related Issues:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions