7b5ef64e76
* Unify JSX Call Checking Codepaths * Add tests for fixed issues * Fix lint, move all error checking into the only-run-once resolveSignature call * Remove unused (unreachable?) code path * Consolidate a little more duplicated logic into signature checking * Fix #19775 a bit more * Cosmetic changes from CR
30 lines
No EOL
558 B
TypeScript
30 lines
No EOL
558 B
TypeScript
// @filename: file.tsx
|
|
// @jsx: preserve
|
|
// @noLib: true
|
|
// @skipLibCheck: true
|
|
// @libFiles: react.d.ts,lib.d.ts
|
|
|
|
import React = require('react');
|
|
|
|
interface PoisonedProp {
|
|
x: string;
|
|
y: "2";
|
|
}
|
|
|
|
class Poisoned extends React.Component<PoisonedProp, {}> {
|
|
render() {
|
|
return <div>Hello</div>;
|
|
}
|
|
}
|
|
|
|
const obj = {};
|
|
|
|
// OK
|
|
<Poisoned {...{x: "ok", y: "2"}} />;
|
|
|
|
// Error
|
|
let p = <Poisoned {...obj} />;
|
|
let y = <Poisoned />;
|
|
let z = <Poisoned x y/>;
|
|
let w = <Poisoned {...{x: 5, y: "2"}}/>;
|
|
let w1 = <Poisoned {...{x: 5, y: "2"}} X="hi" />; |