Typescript中的FileSystem

时间:2017-04-29 09:12:20

标签: angular typescript html5-filesystem

如何在Angular 4应用程序中使用TypeScript中的FileSystem API?

我将devDependencies添加到tsconfig.json,但我仍然遇到像

这样的编译错误
  

属性'resolveLocalFileSystemURL'在'Window'类型上不存在。

     

找不到名称'FileError'。

     

找不到名称'FileEntry'。

我的"node_modules/typed-cordova-plugin-purchase几乎与angular-cli生成的typeRoots相同,我刚刚将{ "compileOnSave": false, "compilerOptions": { "outDir": "./dist/out-tsc", "baseUrl": "src", "sourceMap": true, "declaration": false, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "target": "es5", "typeRoots": [ "node_modules/@types", "node_modules/typed-cordova-plugin-purchase" ], "lib": [ "es2016", "dom" ] } } 添加到public abstract class AbstractTestModel<T extends AbstractTestModel> { public T doSomething(){ return getThis(); } public T getThis(){ return (T) this; } public <U extends AbstractTestModel<T>> U as(Class<U> type){ AbstractTestModel<T> obj = this; if (obj.getClass().isAssignableFrom(type)){ return type.cast(obj); }else{ throw new AssertionError("This (" + obj.getClass().getName() +")could not be resolved to the expected class " + type.getName()); } } }

public class ConcreteTestModel1 extends AbstractTestModel<ConcreteTestModel1> {

  public void doSomethingElse(){

  }
}

我应该进口任何东西吗? 是否有任何在Typescript中使用FileSystem的例子?

2 个答案:

答案 0 :(得分:3)

我最终将types添加到tsconfig.json,实际上tsconfig.app.json(我正在使用角度CLI 1.0.1)

"types": [
    "cordova",
    "cordova-plugin-file"
]

使用@types/filesystem是不够的,因为那里没有定义FileError,这就是我使用"@types/cordova-plugin-file的原因。

答案 1 :(得分:0)

作为除了以前的答案,一定要加@类型/科尔多瓦(以及可能的@类型/科尔多瓦 - 插件文件......见下文附注)到您的项目,如果你还没有这样做的话。这就是我将基于angular 5的应用程序编译到基于Cordova的备用目标的情况。

npm install @types/cordova --save
npm install @types/cordova-plugin-file --save

(后者插件状态:这是Apache科尔多瓦文件系统插件存根类型定义的Apache科尔多瓦文件系统插件提供了自己的类型定义,所以你不需要安装@类型/科尔多瓦 - 插件文件做!)