Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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 如何使用;这";打字_Javascript_Typescript - Fatal编程技术网

Javascript 如何使用;这";打字

Javascript 如何使用;这";打字,javascript,typescript,Javascript,Typescript,我想用这个包裹 它们提供了以下示例: var Http = require("http") var StandardError = require("standard-error") function HttpError(code, msg) { StandardError.call(this, msg || Http.STATUS_CODES[code], {code: code}) } HttpError.prototype = Obje

我想用这个包裹

它们提供了以下示例:

 var Http = require("http")
var StandardError = require("standard-error")
 
function HttpError(code, msg) {
  StandardError.call(this, msg || Http.STATUS_CODES[code], {code: code})
}
 
HttpError.prototype = Object.create(StandardError.prototype, {
  constructor: {value: HttpError, configurable: true, writable: true}
})
我想使用typescript进行复制,但在这部分代码中,我得到了以下信息:

import { Errors } from './errors.enum';
import StandardError from 'standard-error';
import Http from 'http';

function StkError(code: number, msg: any) {
  let name = 'StkError';
  switch (code) {
    case Errors.BADREQUEST:
      name = 'Bad Request';
      break;
    case Errors.UNAUTHORIZED:
      name = 'Unauthorized';
      break;
    case Errors.FORBIDDEN:
      name = 'Forbidden';
      break;
    case Errors.NOTFOUND:
      name = 'Not Found';
      break;
    default:
      name = 'StkError';
  }

  StandardError.call(
    this,
    JSON.stringify({ body: msg.body, params: msg.request.params, query: msg.request.query }) || Http.STATUS_CODES[code],
    {
      code,
    },
  );
}

StkError.prototype = Object.create(StandardError.prototype, {
  constructor: { value: StkError, configurable: true, writable: true },
});

const Mockctx = {
  body: {
    test: 'test',
  },
  request: {
    params: {
      param1: '1',
    },
  },
  otro: '',
};
“this”隐式具有类型“any”,因为它没有类型批注

通过vscode的“快速修复”,我得到了这个

 function StkError(this: { value: typeof StkError; configurable: boolean; writable: boolean; }, code: number, msg: any) {
  let name = 'StkError';
  switch (code) {
    case Errors.BADREQUEST:
      name = 'Bad Request';
      break;
    case Errors.UNAUTHORIZED:
      name = 'Unauthorized';
      break;
    case Errors.FORBIDDEN:
      name = 'Forbidden';
      break;
    case Errors.NOTFOUND:
      name = 'Not Found';
      break;
    default:
      name = 'StkError';
  }

  StandardError.call(
    this,
    JSON.stringify({ body: msg.body, params: msg.request.params, query: msg.request.query }) || Http.STATUS_CODES[code],
    {
      code,
    },
  );
}
但现在它说:预期2个参数,但得到3个


我被绊倒了,谢谢你的帮助

看来你正在使用
StandardError.call
而不是
stkeror.call
?是的,就像示例中一样。在此行中导入的var standarderro=require(“标准错误”)
class stkeror extensed standarderro{…}
应执行此操作。