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{…}
应执行此操作。