如何在项目中分离出@types?
我有一个使用React和Webpack的TypeScript项目:
npm install react react-dom @types/react @types/react-dom --save npm install webpack ts-loader --save-dev
我有一个典型的webpack.config.js
来构build项目。 一切运作良好。
然后,我将.js
webpack.config.js
转换为.ts
文件 。
npm install ts-node @types/node @types/webpack --save-dev
事实上, webpack.config.ts
很好。
然而,node / webpack和react之间的typedef被看作是在同一个空间(即local和web)。 例如在我的webpack.config.ts
我应该引用@types/node
而不是@types/react
,并且在我的src/components/app.tsx
文件中,我应该引用@types/react
而不是@types/node
,但是在这两个地方,编译器和IDE都认为我都使用(在运行时它会炸掉)。 我怎样才能分开这些types的定义,以便正确的文件可见?
从概念上讲,我想我只是想从devDependencies
只能看到开发脚本,如webpack.config.ts
,和src
文件只能看到从dependencies
@types
。 这种设置可能吗?
你应该可以用两个单独的tsconfig.json
文件来完成这个工作,例如:
/webpack.config.ts /tsconfig.json /src/components/app.tsx /src/tsconfig.json
然后,您的/tsconfig.json
特定于Node环境(用于构build):
{ "compilerOptions": { "lib": ["es2015"], // no DOM "types": ["node"] } }
然后/src/tsconfig.json
用于浏览器环境:
{ "compilerOptions": { "lib": ["es2015", "dom"], "types": ["react"] } }
- 扩展快速应用界面
- 使用Angular2 Typescript和ServerJS访问.ENV属性
- 如何configuration使用从PureScript编译的JavaScript模块的TypeScript项目?
- webpack可以自动注册给定目录的索引文件吗?
- 获取错误:如何从打字稿中正确使用我的转录和打字的打字稿npm模块?
- TS2304:无法在节点5.1.0,typescript 1.6.2,webstorm 11中find名称“Map”
- 如何在VSCode中打开浏览器,就像另一个编辑器选项卡一样
- PassportJS和Express 4不正确保存Cookie /会话
- 带有node.js的Typescript给出“不是构造函数”的错误