如何将node_modules / @ types / *和我自己的类型一起使用?

时间:2017-06-28 05:39:37

标签: typescript typescript2.0

我将typescriptwebpack2react一起使用。

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。

但是如何添加自己的类型定义?

1 个答案:

答案 0 :(得分:1)

从您的配置来看,您应该只能将./types/index.d.ts添加到include。如果您已按照评论中的说法将其移至./src/types/index.d.ts,请对该路径执行相同操作。

解释

基本上,你现在想要的就是告诉TypeScript一些全局的东西。您已经创建了一个types文件夹,其中包含.d.ts个文件,其中包含__PROD__全局信息(即./types/index.d.ts

所以你只需要让TypeScript读取它之前没有做过的文件。只需将该文件添加到include列表中,一切都应该有效。