src/index.ts:1:1 - 错误 TS6133: 'functions' 已声明,但其值从未被读取

Mic*_*sky 4 firebase typescript

尝试在将用于 TypeScript 项目的空 git 存储库上将Firebase 添加到您的 JavaScript 项目时,运行时出现以下错误firebase deploy

> functions@ build /Users/mosofsky/Documents/Developer/abcplan/functions
> tsc

src/index.ts:1:1 - error TS6133: 'functions' is declared but its value is never read.

1 import * as functions from 'firebase-functions';   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Found 1 error.

npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! functions@ build: `tsc` npm ERR! Exit status 2 npm ERR!  npm ERR! Failed at the functions@ build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR!     /Users/mosofsky/.npm/_logs/2019-09-06T03_00_54_557Z-debug.log

Error: functions predeploy error: Command terminated with non-zero exit code2
Run Code Online (Sandbox Code Playgroud)

由于我正在遵循 Google 的入门指南,因此我希望一切正常。

And*_*w E 15

根本原因是 a) 声明了变量但未使用,b) TypeScript 编译器配置为将未使用的变量标记为错误。

在我看来,这种配置在基本设置中是多余的。也许未来对功能设置的编辑将解决这个问题。

正如其他人指出的那样,理想的选择就是简单地使用该变量,即使其“未使用”。

有时需要函数的参数,或者至少声明但不使用参数是有用的。在这种情况下,您可以使用 前缀_,然后告诉 TypeScript 可以忽略带有前导下划线的未使用变量。

作为最后的手段,您可以告诉 TypeScript 忽略所有未使用的变量。更改此行,tsconfig.json以便未使用的变量不再是“错误” - 不推荐:

$ cat functions/tsconfig.json
{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": true,  // <-- change to false. Not recommended!
    ...
Run Code Online (Sandbox Code Playgroud)


小智 6

我遇到了同样的问题。我的问题是在部署之前我没有保存文件中的更改(取消注释 helloWorld 测试代码)。保存后,部署正常。


Mic*_*sky 5

我发现我可以在编写一些代码之前注释掉有问题的行。

文件位置functions/src/index.ts来自存储库的根目录(不是src/index.ts)。

第一行说

import * as functions from 'firebase-functions';
Run Code Online (Sandbox Code Playgroud)

所以我给它加上了//这样的前缀:

// import * as functions from 'firebase-functions';
Run Code Online (Sandbox Code Playgroud)

然后我重新跑了firebase deploy,我走得更远(我遇到了另一个错误,无关但已通过Error: HTTP error: 400, Project 'my_project' is not a Firestore enabled project 解决)。