Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript到Typescript转换错误-云函数_Typescript_Firebase_Google Cloud Functions - Fatal编程技术网

Javascript到Typescript转换错误-云函数

Javascript到Typescript转换错误-云函数,typescript,firebase,google-cloud-functions,Typescript,Firebase,Google Cloud Functions,我正在按照这个指南()尝试我的第一个云函数,它是用JS编写的,但不是用Typescript编写的 我创建了以下内容: // // Start writing Firebase Functions // // https://firebase.google.com/docs/functions/typescript // export const helloWorld = functions.https.onRequest((request, response) => { if

我正在按照这个指南()尝试我的第一个云函数,它是用JS编写的,但不是用Typescript编写的

我创建了以下内容:


// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//
 export const helloWorld = functions.https.onRequest((request, response) => {
  
  if (request.method !== 'POST') {
      return response.status(500).json({
          message: 'Not allowed'
      });
  }

  response.status(200).json({
      message: 'Hello World!'
  });
 });
但是,linter给了我以下错误:

类型为“(request:request,response:response)=>response | undefined”的参数不能分配给类型为“(req:request,resp:response)=>void | Promise”的参数。 类型“Response | undefined”不可分配给类型“void | Promise”。 类型“Response”不可分配给类型“void | Promise”。 类型“Response”缺少类型“Promise”中的以下属性:然后,catch,[Symbol.toStringTag]


我不确定如何修改代码。

Typescript需要一个不返回任何内容或承诺的函数。但是,您将在if语句中返回响应对象,如果条件不为true,则返回未定义对象。 在这种情况下,解决此问题的简单方法是:

export const helloWorld = functions.https.onRequest((request, response) => {

  if (request.method !== 'POST') {
    response.status(500).json({
       message: 'Not allowed'
    });
  } else {
    response.status(200).json({
      message: 'Hello World!'
    });
  }

});
如果要从函数中“返回”而不是使用else语句,可以执行以下操作:

export const helloWorld = functions.https.onRequest((request, response) => {

  if (request.method !== 'POST') {
    response.status(500).json({
       message: 'Not allowed'
    });
    return;
  }
  
  response.status(200).json({
    message: 'Hello World!'
  });

});