TypeScript/tests/cases/conformance/jsx/checkJsxChildrenProperty2.tsx

60 lines
1.1 KiB
TypeScript
Raw Normal View History

2017-04-12 21:17:27 +02:00
// @filename: file.tsx
// @jsx: preserve
// @noLib: true
// @skipLibCheck: true
2017-04-12 21:17:27 +02:00
// @libFiles: react.d.ts,lib.d.ts
// @strictNullChecks: true
2017-04-12 21:17:27 +02:00
import React = require('react');
interface Prop {
a: number,
b: string,
children: string | JSX.Element
}
function Comp(p: Prop) {
return <div>{p.b}</div>;
}
// Error: missing children
let k = <Comp a={10} b="hi" />;
2017-04-12 22:38:11 +02:00
let k0 =
2017-04-12 21:17:27 +02:00
<Comp a={10} b="hi" children="Random" >
hi hi hi!
</Comp>;
2017-04-12 22:38:11 +02:00
let o = {
children:"Random"
}
let k1 =
<Comp a={10} b="hi" {...o} >
hi hi hi!
</Comp>;
2017-04-12 21:17:27 +02:00
// Error: incorrect type
let k2 =
<Comp a={10} b="hi">
<div> My Div </div>
{(name: string) => <div> My name {name} </div>}
</Comp>;
let k3 =
<Comp a={10} b="hi">
<div> My Div </div>
{1000000}
</Comp>;
let k4 =
<Comp a={10} b="hi" >
<div> My Div </div>
hi hi hi!
</Comp>;
let k5 =
<Comp a={10} b="hi" >
<div> My Div </div>
<div> My Div </div>
</Comp>;