mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-11 20:40:20 +00:00
[React] change createElement declaration (#19858)
* fix https://github.com/Microsoft/TypeScript/issues/15019 * change the stable v15 declaration too * catch-all case also take string * add string for test
This commit is contained in:
committed by
Masahiro Wakame
parent
e835076e1e
commit
29ca22c8b0
Vendored
+1
-1
@@ -216,7 +216,7 @@ declare namespace React {
|
||||
props?: ClassAttributes<T> & P,
|
||||
...children: ReactNode[]): CElement<P, T>;
|
||||
function createElement<P>(
|
||||
type: ComponentClass<P>,
|
||||
type: SFC<P> | ComponentClass<P> | string,
|
||||
props?: Attributes & P,
|
||||
...children: ReactNode[]): ReactElement<P>;
|
||||
|
||||
|
||||
@@ -193,6 +193,12 @@ const customProps: React.HTMLProps<HTMLElement> = props;
|
||||
const customDomElement = "my-element";
|
||||
const nonLiteralElement = React.createElement(customDomElement, customProps);
|
||||
|
||||
// https://github.com/Microsoft/TypeScript/issues/15019
|
||||
|
||||
function foo3(child: React.ComponentClass<{ name: string }> | React.StatelessComponent<{ name: string }> | string) {
|
||||
React.createElement(child, { name: "bar" });
|
||||
}
|
||||
|
||||
// React.cloneElement
|
||||
const clonedElement: React.CElement<Props, ModernComponent> = React.cloneElement(element, { foo: 43 });
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -223,7 +223,7 @@ declare namespace React {
|
||||
props?: ClassAttributes<T> & P,
|
||||
...children: ReactNode[]): CElement<P, T>;
|
||||
function createElement<P>(
|
||||
type: ComponentClass<P>,
|
||||
type: SFC<P> | ComponentClass<P> | string,
|
||||
props?: Attributes & P,
|
||||
...children: ReactNode[]): ReactElement<P>;
|
||||
|
||||
|
||||
@@ -193,6 +193,12 @@ const customProps: React.HTMLProps<HTMLElement> = props;
|
||||
const customDomElement = "my-element";
|
||||
const nonLiteralElement = React.createElement(customDomElement, customProps);
|
||||
|
||||
// https://github.com/Microsoft/TypeScript/issues/15019
|
||||
|
||||
function foo3(child: React.ComponentClass<{ name: string }> | React.StatelessComponent<{ name: string }> | string) {
|
||||
React.createElement(child, { name: "bar" });
|
||||
}
|
||||
|
||||
// React.cloneElement
|
||||
const clonedElement: React.CElement<Props, ModernComponent> = React.cloneElement(element, { foo: 43 });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user