我有一个在JSX中编码的现有React组件,此时我无法转换为Typescript。我想在一个用Typescript编写的新React应用程序中使用它。我无法弄清楚是否可以在TSX代码中导入和使用JSX代码。这可能吗?我该怎么做?
由于
以下示例给出了错误:TS2604:JSX element type 'OldCode' does not have any construct or call signatures.
OldCode.jsx
import React from 'react'
export default React.createClass({
render() {
return <div>OldCode</div>
}
})
NewCode.tsx
import * as React from 'react';
import { OldCode } from './OldCode';
export default class NewCode extends React.Component<any, any> {
render() {
return (
<OldCode/>
);
}
}
答案 0 :(得分:0)
尝试更改导入语句:
import OldCode from './OldCode';
如果您使用的是webpack,则可能需要将.jsx添加到解析器中。
答案 1 :(得分:0)
ffmpeg
并像
一样使用它declare module '*.jsx' {
var _: React.Component<any, any>;
export default _;
}
将此文件放入某个文件中,确保它包含在import OldCode from './OldCode.jsx';
。
当然,请确保webpack将它们全部打包。
答案 2 :(得分:0)
由于没有接受的答案,我将链接到我的问题,该问题实际上回答了如何为现有组件编写定义文件(我的问题是关于包含在redux连接中的组件):
[How do I create a typescript definition file (d.ts) for an existing redux connected (jsx)component?
希望它有所帮助...