如何在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的例子?
答案 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科尔多瓦文件系统插件提供了自己的类型定义,所以你不需要安装@类型/科尔多瓦 - 插件文件做!)