首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能通过云函数“包含”ES7特性

不能通过云函数“包含”ES7特性
EN

Stack Overflow用户
提问于 2017-12-08 05:51:50
回答 1查看 260关注 0票数 1

我试图在一个VueJS项目中使用类型记录,该项目有一个子目录functions,用于在服务器端执行云函数。

我想使用ES2017特性Array.prototype.includes,我认为通过将以下tsconfig.json添加到函数目录中实现了这一点:

代码语言:javascript
复制
{
  "compilerOptions": {
    "lib": ["es2016", "es2017"],
    "target": "es6",
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "strict": true
  }
}

如果我进入函数目录并运行tsc转换程序,它将无错误地运行。另外,我的vs代码编辑器没有突出显示使用“include”的任何问题。但是,随着Firebase文档上建议的配置,我在我的firebase.json配置文件中添加了以下内容:

代码语言:javascript
复制
"functions": {
  "predeploy": "npm --prefix functions run build"
}

反过来,我的package.json函数目录中将build脚本列出如下:

代码语言:javascript
复制
"scripts": {
  "build": "tslint *.ts && tsc *.ts"
},

但是,当我运行firebase deploy --only functions时,它正确地运行了构建脚本,但是它会给出以下错误:

index.ts(44,31):错误TS2339: Property‘include’在类型'string[]‘上不存在。

我认为这可能是因为它错误地使用了根目录中的tsconfig.json (也就是VueJS正在使用的目录),而不是函数目录中的那个,但我不完全确定。

我可以通过将build命令更改为:

代码语言:javascript
复制
"build": "tslint *.ts && tsc *.ts --lib 'es7'"

这确实有效,但让我觉得我已经把它砍了一点。有人能指出一个更好的答案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-08 06:22:24

原因是当您使用tsc指定输入文件时,tsc *.ts会忽略tsconfig.json文件。

来自文档

当在命令行上指定输入文件时,tsconfig.json文件将被忽略。

若要修复此问题,请运行不带任何参数的tsc。这将使用您的tsconfig.json文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47708487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档