我试图了解在打字稿中使用 tsx 文件是否存在类型推断的限制。
如果我创建一个无状态的反应组件:
interface TestProps {
foo: string;
}
export const TestComp: React.StatelessComponent<TestProps> = x => {
return(<div>{foo}</div>);
};
然后在第二个 tsx 文件中尝试以下操作:
import { TestComp } from './TestComp';
const getProperties = function<P>(node: React.ReactElement<P>) : P {
return node.props
};
var props1 = getProperties(React.createElement(TestComp, { foo : 'bar' }));
var props2 = getProperties(<TestComp foo='bar' />);
props1 的推断类型为TestProps, props2 的推断类型为any。
我的印象是最后两行是等价的。Typescript 是否有理由相信第二次调用中的 object 是 a React.ReactElement<any>
?