如何解决typescript中与错误相关的错误:TS2705

如何解决typescript中与错误相关的错误:TS2705,typescript,Typescript,错误TS2705:ES5/ES3中的异步函数或方法需要“Promise”构造函数。确保您有“承诺”构造函数的声明,或者在-lib选项中包含“ES2015” 启动最小的新TypeScript项目时,tsconfig.json文件几乎为空。这意味着编译器不知道在您选择的平台上有哪些库可用。本质上,您将或多或少地拥有一个简单的javascript版本,以及npm安装到依赖项中的任何库类型。我的意思是,包含了一些默认库。截至撰写本文件时,缔约国: 将插入库的默认列表。注入的默认库包括: For-目标ES

错误TS2705:ES5/ES3中的异步函数或方法需要“Promise”构造函数。确保您有“承诺”构造函数的声明,或者在-lib选项中包含“ES2015”


启动最小的新TypeScript项目时,tsconfig.json文件几乎为空。这意味着编译器不知道在您选择的平台上有哪些库可用。本质上,您将或多或少地拥有一个简单的javascript版本,以及npm安装到依赖项中的任何库类型。我的意思是,包含了一些默认库。截至撰写本文件时,缔约国:

将插入库的默认列表。注入的默认库包括:

For-目标ES5:DOM、ES5、ScriptHost For-targetES6:DOM、ES6、DOM.Iterable、ScriptHost 因为您的示例代码中有一些代码使用了async关键字,这是语法上的甜点,TypeScript将尝试将其编译为承诺。但是,您还没有列出您的平台可以支持的库

为了告诉编译器您想要针对哪些API,您需要给它一些提示

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

将lib:[es2015]添加到tsconfig.json文件 使用-lib标志运行typescript cli命令,如:tsc-lib ES2015 可能重复的
import * as Hapi from 'hapi';

import * as IConfig from 'config';
const config = JSON.parse(JSON.stringify(IConfig));

const serverConnections = config.server,
    server: Hapi.Server = new Hapi.Server(serverConnections);

export module Server {
  export const start = async () => {
    server.route({
      path: '/',
      method: 'GET',
      handler(request, h) {
        return "hello!!!"
      },
    });

    console.log('serverstart')
    server.start();
  }
}