如何解决打字稿中与错误相关的错误:TS2705

时间:2018-12-21 07:52:25

标签: typescript

错误TS2705:ES5 / ES3中的异步函数或方法需要'Promise'构造函数。确保您具有“ Promise”构造函数的声明,或在public void setSpinnerData(ArrayList<String> spinnerArray) { ArrayAdapter<String> adapter = new ArrayAdapter<>( this, android.R.layout.simple_spinner_item, spinnerArray); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); CategorySpinner.setAdapter(adapter); CategorySpinner.setSelection(0); } public void onLoadFinished(Loader<Cursor> loader, Cursor data) { ArrayList<String> spinnerArray = ArrayList(); if (data.moveToFirst()) { do { int categoryNameColumnIndex = data.getColumnIndex(CategoryBaseColumns.CATEGORY_NAME); spinnerArray.add(data.getString(categoryNameColumnIndex)); //Log.e(data.getString(categoryNameColumnIndex)) } while (data.moveToNext()); } setSpinnerData(spinnerArray); } 选项中包含“ ES2015”。

--lib

1 个答案:

答案 0 :(得分:1)

启动最小的新TypeScript项目时,您的tsconfig.json文件将接近空白。这意味着编译器不知道您选择的平台上将提供哪些库。从本质上讲,您将或多或少地使用javascript的准系统版本,并将npm install的任何库类型放入依赖项中。准系统是指包括一些默认库。在撰写本文时,documentation指出:

  

将注入默认的库列表。注入的默认库为:

     
      
  • 对于--target ES5:DOM,ES5,ScriptHost
  •   
  • 对于--target ES6:DOM,ES6,DOM.Iterable,ScriptHost
  •   

因为在示例代码中有一些使用async关键字的代码-这是Promise API周围的语法糖-TypeScript将尝试将其编译为Promises。但是,您尚未列出平台可以支持的库。

为了告诉编译器您要定位的API,您需要提供一些提示。

有两种方法可以做到这一点:

  1. "lib":["es2015"]添加到您的tsconfig.json文件中
  2. 使用--lib标志运行typescript cli命令,如下所示:tsc --lib ES2015