Dra*_*SAN 4 javascript node.js ecmascript-6
我开始使用模板文字来制作错误生成器.
我有工作代码,但我被迫在constructor
范围内声明可能的错误列表,我对此并不满意.
有没有办法复制模板文字而不评估它,所以我可以在正确的范围内评估它?或者将范围传递给模板文字?
工作error.js
:
'use strict';
class Error {
constructor(code) {
const error = {
//...
//API
1001: 'No token',
1002: `${arguments[1]}`,
1003: `${arguments[1]} ! ${arguments[2]}`,
1004: 'Missing data'
//...
};
let i = 0;
this.code = code;
this.error = error[code];
//...
}
}
// export default Error;
module.exports = Error;
Run Code Online (Sandbox Code Playgroud)
被称为:
'use strict';
const Error = require('./error.js');
console.log(new Error(1002, 'var'));
Run Code Online (Sandbox Code Playgroud)
我想要的是能够const error
在模块范围内声明,或者更好的是,在它自己的文件中声明我require
.但是现在这样做导致argument
不是那个constructor
,而是模块之一.
字符串文字会立即评估.它们不能用作以后格式化的模板(不像Python的格式字符串看起来类似).
你可以做Leonid Beschastny建议的东西,并使用很少的函数为你做插值.
像这样的东西:
const error = {
1001: () => 'No token',
1002: (args) => `${args[1]}`,
1003: (args) => `${args[1]} ! ${args[2]}`,
1004: () => 'Missing data'
};
this.error = error[code](arguments);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2226 次 |
最近记录: |