import {Component, ...actions} from '../MyModule';
Run Code Online (Sandbox Code Playgroud)
似乎是在抛出一个linting错误.您是否有理由不能在ES6导入声明中"传播"?
我有这样的ES7代码.
async function returnsfive() {
var three = 3;
var threeP = await three;
return threeP+2;
}
returnsfive().then(k=>console.log(k), e=>console.error("err", e))
Run Code Online (Sandbox Code Playgroud)
该var threeP = await three线应该怎么办?
代码应该按预期继续,还是失败,因为three这不是承诺?
在这个repo中,它被称为"Debatable Syntax&Semantics".我无法阅读官方文档以找到确切的定义,因为它太技术性了.
默认的babel.js转换按预期记录5; 然而,nodent- 一个不同的变换 - 打印TypeError: three.then is not a function.哪个是正确的,为什么?
我想知道在es6中使用扩展语法时是否有一种干净的方法来设置字符串变量的键值?
类似于以下内容:
let keyVar = 'newKey'
let newObject = {keyVar:{some:'json'},...oldObject}
Run Code Online (Sandbox Code Playgroud)
但这会导致:
{"keyVar":{"some":"json"}, ... }
而不是:
{"newKey":{"some":"json"}, ... }
我试图理解如何在一个非常简单的代码中使用装饰器,所以我可以将这个概念应用到我的大项目中.从阿迪·奥斯马尼的文章以提示在这里,我创建了如下一段简单的代码.
说,我有一个叫做的类Cat,有一个meow()方法,我想用一些日志来装饰它,如下所示.
class Cat {
@logger
meow() { console.log( ' Meeeoow! ') }
};
function logger(target, key, descriptor) {
console.log("Cat snarling...");
return descriptor;
}
const cat = new Cat();
cat.meow();
Run Code Online (Sandbox Code Playgroud)
当我尝试对Node.js解释器(版本9.1.0)执行此操作时,我收到以下错误.
/Users/ravindranath/projects/decorators/index.js:2 @logger ^
SyntaxError: Invalid or unexpected token
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:152:10)
at Module._compile (module.js:605:28)
at Object.Module._extensions..js (module.js:652:10)
at Module.load (module.js:560:32)
at tryModuleLoad (module.js:503:12)
at Function.Module._load (module.js:495:3)
at Function.Module.runMain (module.js:682:10)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:613:3
所以,我的问题是:
Node.js 9.x是否支持装饰器语法?或者它是否会出现在未来的某个版本中?
我express-js在GitHub上看到一些基于装饰的东西,但我无法弄清楚如何创建自己的装饰器.有人可以提供一个使用Node.js创建自定义装饰器的简单基本示例吗?
我收到此正则表达式模式的以下控制台警告:
^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$
Run Code Online (Sandbox Code Playgroud)
Pattern 属性值
^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$对于 RegExp 标志有效u,但对于以下v标志无效:
未捕获的语法错误:无效的正则表达式:/^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/v:字符类中的字符无效。
我看不到如何为此警告创建有效的正则表达式模式。请问有人可以解释一下这个错误以及如何解决它吗?
我尝试查看文档,但无法了解如何使其对v标志有效
有
var obj = { a: 1, b: 2};
Run Code Online (Sandbox Code Playgroud)
有什么区别
obj = Object.assign(obj, { c: 3});
Run Code Online (Sandbox Code Playgroud)
和
obj = {...obj, c: 3 };
Run Code Online (Sandbox Code Playgroud) 他们已经对这个话题提出了疑问
这是旧的,答案已经过时,domains甚至已经被弃用了.
现在在Async/Await Node.js之后的场景中,我们不应该同样考虑同步和异步情况,并在同步函数中抛出异常并拒绝异步函数中的promise,而不是Error在前一种情况下返回实例.
let divideSync = function(x,y) {
// if error condition?
if ( y === 0 ) {
// "throw" the error
throw new Error("Can't divide by zero exception")
}
else {
// no error occured, continue on
return x/y
}
}
Run Code Online (Sandbox Code Playgroud)
模拟异步除法运算
let divideAsync = function(x, y) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
// if error condition?
if (y === 0) {
// "throw" the error safely by rejecting the …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的JS项目中使用装饰器,但是ESLint正在抛出一个错误,指出@符号是一个意外的字符.
我的代码:
@observable items = [];
Run Code Online (Sandbox Code Playgroud)
我的.eslintrc:
{
"parserOptions": {
"ecmaVersion": 6,
"ecmaFeatures": {
"jsx": true
},
"sourceType": "module"
},
"env": {
"browser": true,
"node": true,
"es6": false
},
"ecmaFeatures": {
"modules": true
},
"rules": {
"strict": [
2,
"global"
],
"quotes": [
2,
"single"
],
"indent": [
2,
4
],
"eqeqeq": [
2,
"smart"
],
"semi": [
2,
"always"
],
"max-depth": [
2,
4
],
"max-statements": [
2,
15
],
"complexity": [
2,
5
]
}
}
Run Code Online (Sandbox Code Playgroud) 有人可以解释React中的Babel如何支持胖箭头函数作为类属性?使用Babel 尝试一下我可以看到它们不受支持:
class Question {
// Property (not supported)
myProp = () => {
return 'Hello, world!';
}
// Method (supported)
myFunc() {
return 'Hello, world!';
}
}
Run Code Online (Sandbox Code Playgroud)
ES6中不支持类属性(如果我错了,请纠正我),但是在React(使用Babel)中它们可以工作.
我可以使用TypeScript Playground看到方法和属性之间的区别,但我无法清楚地了解Babel是否支持它们.有插件吗?
更新:
我可以看到他们支持使用"babel-preset-stage-0".
class Foo {
static v = 123;
static bar = () => this.v;
}
console.log(Foo.bar());Run Code Online (Sandbox Code Playgroud)
我希望这段代码返回undefined,因为箭头函数是词法范围的,因此this必须急切地绑定到外部范围。
然而,它返回123。
为什么会发生这种情况?
是的,我知道它仍然是第 3 阶段,但仍然 - 为什么提议的标准会这样?(有关另一个示例,请参阅https://babeljs.io/docs/en/babel-plugin-transform-class-properties。)
ecmascript-next ×10
javascript ×9
ecmascript-6 ×3
async-await ×2
node.js ×2
babeljs ×1
class ×1
class-fields ×1
decorator ×1
es6-class ×1
eslint ×1
html ×1
html-input ×1
module ×1
reactjs ×1
regex ×1
static ×1