mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-23 12:56:46 +08:00
Add a string-fallback overload to React.createElement
The types aren't quite as nice as when providing a string literal like "div" or "input", but it works as well as it did before the string-literal-overload change in #17507.
This commit is contained in:
4
types/react/index.d.ts
vendored
4
types/react/index.d.ts
vendored
@@ -144,6 +144,10 @@ declare namespace React {
|
||||
type: keyof ReactSVG,
|
||||
props?: ClassAttributes<T> & P,
|
||||
...children: ReactNode[]): ReactSVGElement;
|
||||
function createElement<P extends DOMAttributes<T>, T extends Element>(
|
||||
type: string,
|
||||
props?: ClassAttributes<T> & P,
|
||||
...children: ReactNode[]): DOMElement<P, T>;
|
||||
function createElement<P>(
|
||||
type: SFC<P>,
|
||||
props?: Attributes & P,
|
||||
|
||||
@@ -190,8 +190,12 @@ var classicElement: React.ClassicElement<Props> =
|
||||
React.createElement(ClassicComponent, props);
|
||||
var domElement: React.ReactHTMLElement<HTMLDivElement> =
|
||||
React.createElement("div");
|
||||
var htmlElement = React.createElement("input", { type: "text" });
|
||||
var svgElement = React.createElement("svg", { accentHeight: 12 });
|
||||
var literalHtmlElement = React.createElement("input", { type: "text" });
|
||||
var literalSvgElement = React.createElement("svg", { accentHeight: 12 });
|
||||
|
||||
declare let cardhtml: React.HTMLProps<HTMLElement>;
|
||||
declare let accessKey: string;
|
||||
var nonLiteralElement = React.createElement(accessKey, cardhtml);
|
||||
|
||||
// React.cloneElement
|
||||
var clonedElement: React.CElement<Props, ModernComponent> =
|
||||
|
||||
Reference in New Issue
Block a user