云功能Firestore中的Firebase-Admin软件包Typescript错误:@ types/googlemaps

Bog*_*gac 3 firebase typescript google-cloud-functions google-cloud-firestore

我有两个具有类似Cloud Functions设置的项目,都直接使用类似于此示例示例的 Typescript设置(无Webpack)

其中一个使用Firestore,另一个则不使用.不使用Firestore的那个编译和部署没有错误.

然而,具有Firestore函数的那个​​在tsc编译时给出了这个错误:

../node_modules/@types/googlemaps/index.d.ts(33,29): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(37,19): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(54,28): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(787,30): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(798,36): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(811,26): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(1135,20): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1136,22): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1137,18): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1138,22): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1139,23): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1140,23): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1141,29): error TS2304: Cannot find name 'Element'.

... and goes on.
Run Code Online (Sandbox Code Playgroud)

这些是package.json依赖项:

"dependencies": {
    "@google-cloud/storage": "^1.5.0",
    "axios": "^0.17.1",
    "child-process-promise": "^2.2.1",
    "firebase-admin": "~5.5.1",
    "firebase-functions": "^0.7.3"
  },
  "devDependencies": {
    "typescript": "^2.6.2"
  },
Run Code Online (Sandbox Code Playgroud)

tsconfig的内容:

{
  "compilerOptions": {
    "lib": ["es6", "es2015.promise"],
    "module": "commonjs",
    "noImplicitAny": false,
    "outDir": "build",
    "sourceMap": true,
    "target": "es6"
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?它与Typescript版本有关吗?(2.6)我需要导入@types吗?添加dev-dependency @types/node没有帮助.

Bog*_*gac 18

首先我认为问题是node_modules文件中的tsconfig文件夹的排除和删除"exclude": [ "node_modules" ]部分.它没有帮助.

然后,由于所有错误似乎都与DOM元素名称或"Node"有关,因此它应该是关于某些通用包的缺失类型定义,因此在该问题上进行了另一次搜索并遇到类似问题的答案:Typescript构建获取node_modules文件夹中的错误

tsconfig像这样改变(添加引用lib.es6.d.ts)会让我的问题消失:

  "include": [
    "src/**/*.ts"
  ],
  "files": [
    "node_modules/typescript/lib/lib.es6.d.ts"
  ],
  "exclude": [
      "node_modules"
  ]
Run Code Online (Sandbox Code Playgroud)


Kho*_*elo 6

添加 "skipLibCheck": true到 tsconfig.json 也可以解决问题。

信用 - https://github.com/firebase/firebase-tools/issues/749#issuecomment-385693352