Typescript [React]不将.tsx导入转换为.jsx导入

时间:2016-09-25 21:50:57

标签: javascript reactjs typescript

我将typescript反应组件保存在不同的文件中,因此我使用以下语句导入我的子组件。

// app.tsx



import {SideBar} from "./sidebar"




但是当typescript将app.tsx编译为app.jsx时,import语句将切换为require(" sidebar")。我在javascript上收到错误,因为require语句需要有" sidebar.jsx"用" .jsx"延期。有没有办法让我自动化?

我的tsconfig设置为:



{
    "compilerOptions": {
        "jsx": "preserve",
        "target": "ES5",
        "noImplicitAny":false,
		"module": "commonjs",
        
    }
}




也许我需要在tsconfig文件中添加一些东西?

提前致谢。

1 个答案:

答案 0 :(得分:0)

选项1

  

我在javascript上收到错误,因为require语句需要“sidebar.jsx”扩展名为“.jsx”。

修复此错误,例如如果您使用的是webpack,则可以将.jsx添加为可解析的路径。

resolve: {
  // Add `.jsx` as a resolvable extension.
  extensions: ['', '.webpack.js', '.web.js', '.jsx']
},

如果是这样,甚至可以使用ts-loader:https://github.com/TypeStrong/ts-loader而不是jsx: preserve而不是jsx: react。更多:https://basarat.gitbooks.io/typescript/content/docs/jsx/tsx.html

选项2

使用module: es6代替"module": "commonjs",,打字稿不会将import重写为require