Angular 角形2字

Angular 角形2字,angular,web-sql,typescript-typings,Angular,Web Sql,Typescript Typings,我正在用angular 4编写一个电子应用程序。我需要一个数据库并想使用websql,但我找不到导入websql类型的方法 我添加了@types/websql。在我的IDE中,执行以下操作时没有编译错误: const db: Database = window.openDatabase('foo', '1.0', 'foo', 2 * 1024 * 1024); 但是ng serve给了我: Property 'openDatabase' does not exist on type 'Win

我正在用angular 4编写一个电子应用程序。我需要一个数据库并想使用websql,但我找不到导入websql类型的方法

我添加了@types/websql。在我的IDE中,执行以下操作时没有编译错误:

const db: Database = window.openDatabase('foo', '1.0', 'foo', 2 * 1024 * 1024);
但是
ng serve
给了我:

Property 'openDatabase' does not exist on type 'Window'
我没有任何特定于
@types/websql
的导入。由于它不是一个模块,我不知道如何导入它


有人知道我如何导入这个吗?

好的,我找到了解决方案

ng cli生成一个tsconfig.app.json,其属性
types
设置为[]。 如果我正确理解tsc文档,它将阻止编译器使用
typeroot
属性

只需删除此属性,我的代码即可编译。

如下所示:

所有可见的“@types”包都包含在您的编译中

如果指定了typeRoots,则只包括typeRoots下的包

如果指定了类型,则仅包括类型下的包

如果我在ts.config.app中输入如下配置:

"types": [
  "websql"
] 

它将只包括节点_modules/@types/websql,而忽略可能已安装的其他节点。

当我尝试使用tsc编译时,它似乎可以工作。所以我猜这里的问题是NG-CLI…你应该考虑提供一个你的答案的解释。有关更多信息,请阅读: