我将typescript
与webpack2
和react
一起使用。
ProviderPlugin
的{{1}}提供了一些全局变量。
我在我的webpack
文件中使用它,如下所示:
entry
但console.log(process.env.NODE_ENV);
console.log(__PROD__);
编译器给我一个错误:
typescript
我创建自己的类型文件:
Error:(14, 13) TS2304:Cannot find name '__PROD__'.
:
./types/index.d.ts
我的declare const __PROD__: boolean;
:
tsconfig.json
你知道,我已经将{
"version": "2.3.4",
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/",
"allowJs": true,
"sourceMap": true,
"allowSyntheticDefaultImports": false,
"experimentalDecorators": true,
"lib": [
"es5",
"es2015",
"DOM",
"ScriptHost"
],
"typeRoots": [
"./node_modules/@types"
],
"target": "es5",
"module": "commonjs",
"jsx": "react",
"pretty": true,
"strictNullChecks": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noUnusedLocals": false,
"noUnusedParameters": false
},
"include": [
"./src/**/*"
],
"exclude": [
"dist",
"node_modules",
"**/*.spec.ts",
"__test__"
]
}
用于node_modules/@types
和其他lib。
但是如何添加自己的类型定义?
答案 0 :(得分:1)
从您的配置来看,您应该只能将./types/index.d.ts
添加到include
。如果您已按照评论中的说法将其移至./src/types/index.d.ts
,请对该路径执行相同操作。
基本上,你现在想要的就是告诉TypeScript一些全局的东西。您已经创建了一个types
文件夹,其中包含.d.ts
个文件,其中包含__PROD__
全局信息(即./types/index.d.ts
)
所以你只需要让TypeScript读取它之前没有做过的文件。只需将该文件添加到include
列表中,一切都应该有效。