错误TS2318:找不到全局类型'对象'

时间:2018-06-06 13:01:38

标签: typescript typescript-typings

非常简单的项目,没有tsconfig.json只使用命令行:

tsc --jsx react --target es6 --lib dom src/lib/Fetch.tsx

我得到以下错误,我不明白为什么,这些类型在字面上被定义到任何地方,特别是在lib.es6.d.ts中,我相信--target es6

error TS2318: Cannot find global type 'Array'.
error TS2318: Cannot find global type 'Boolean'.
error TS2318: Cannot find global type 'Function'.
error TS2318: Cannot find global type 'IArguments'.
error TS2318: Cannot find global type 'Number'.
error TS2318: Cannot find global type 'Object'.
error TS2318: Cannot find global type 'RegExp'.

安装以下依赖项

"dependencies": {
  "@types/react-dom": "^16.0.6",
  "@types/react": "^16.3.16",
  "react": "^16.4.0",
  "react-dom": "^16.4.0"
},
"devDependencies": {
  "@types/node": "^10.3.1",
  "typescript": "^2.9.1"
}

分辨

弄清楚我的问题。在本地安装了typescript,但是正在运行全局安装的旧版本的打字稿。当我通过npm脚本运行tsc时,它使用以下命令进行编译:

tsc --jsx react --target es6 --module commonjs src/lib/Fetch.tsx

1 个答案:

答案 0 :(得分:5)

dom仅包含浏览器特定DOM元素的定义。您需要包含一个es*库,其中包含编译所需的核心es类型。指定--lib选项后,必须包含所有必需的类型,编译器将不再包含基于目标的任何库:

tsc --jsx react --target es6 --lib es2015,dom src/lib/Fetch.tsx

或者,如果您实际上并不只是使用默认库,则可以完全省略该选项:

tsc --jsx react --target es6 src/lib/Fetch.tsx