[ES6] ES6 Parameter Object Destructuring with Required Values

Not only can you provide default values when using ES6 parameter object destructuring, but you can also require the presence of certain properties.

function ajax({
  type = "get",
  url = requiredParameter("url"),
  data = {},
  success = requiredParameter("success"),
  error = () => {},
  isAsync = true } = {}) {
    console.log(JSON.stringify({ type, url, data, success, error, isAsync }, null, 2));
}

function requiredParameter(name){
  console.log(`parameter missing: "${name}"`);
}

try{
 ajax({url: ‘http://api.com‘, data: {name: ‘Zhentian‘}, success: false})
}catch(e){
  console.log(JSON.stringify(e))
}

Now, success and url are rueqired, if we don‘t passin success, then it will show:

//"parameter missing: \"success\""
时间: 2024-10-11 00:48:45

[ES6] ES6 Parameter Object Destructuring with Required Values的相关文章

Cause: org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: java.sql.SQLException: 不支持的特性

mybatis插入数据时报错: Cause: org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: java.sql.SQLException: 不支持的特性 at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFacto

关于在ES6中的 Object.defineProperty(obj、prop、description)的相关参数问题

对象是由多个名/值对组成的无序的集合.对象中每个属性对应任意类型的值. 定义对象可以使用构造函数或字面量的形式: var obj = new Object; //obj = {} obj.name = "张三"; //添加描述 obj.say = function(){}; //添加行为 除了以上添加属性的方式,还可以使用 Object.defineProperty 定义新属性或修改原有的属性. Object.defineProperty() 语法: Object.defineProp

ES6对象方法Object.assign()

1  基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). [javascript] view plain copy var target = { a: 1 }; var source1 = { b: 2 }; var source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3} Object.ass

es6新语法Object.assign()

1.介绍 Object.assign用于对象的合并,将源对象的所有可枚举属性复制到目标对象,只拷贝源对象自身的属性继承属性补考呗 Object.assign(target,source1,...)第一个参数为目标对象,其它为源对象,若有同名属性后面的会覆盖前面的 该方法实现的是浅拷贝,源对象的某个属性是对象,目标对象复制的这个属性是这个对象的引用 2.用途 为对象添加属性.方法.克隆对象.合并多个对象.为属性指定默认值(注意该方法为浅拷贝,只能拷贝基本数据类型) 原文地址:https://www

重构指南 - 引入参数对象(Introduce Parameter Object)

当一个方法的参数超过3个以上,就可以考虑将参数封装成一个对象.将参数封装成对象后提高了代码的可读性,并且该参数对象也可以供多个方法调用,以后如果增加删除参数,方法本身不需要修改,只需要修改参数对象就可以. 重构前代码 public class Registration { public void Create(decimal amount, Student student, IEnumerable<Course> courses, decimal credits) { // do work }

重构第23天 引用参数对象(Introduce Parameter Object)

理解:有时候我们的一个方法,需要很多个参数,太多参数,不易阅读和理解,我们就可以把多个参数封装成一个对象. 详解: 重构前代码: 1 public class Registration 2 { 3 public void Create(decimal amount, Student student, IEnumerable<Course> courses, decimal credits) 4 { 5 // do work 6 } 7 } 通常这种情形下创建一个用户传递参数的类是很有帮助的,这

mybatis源码学习(二):SQL执行

从上一篇文章中,我们了解到MapperMethod将SQL的执行交给了sqlsession处理.今天我们继续往下看处理的过程. SqlSession接口除了提供获取Configuration,Mapper的方法之外,主要的作用就是提供增删该查的方法. /** * Copyright 2009-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License&q

[ES6] 09. Destructuring Assignment -- 2

Read More: http://es6.ruanyifeng.com/#docs/destructuring Array “模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值: Exp 1: var [head, ...tail] = [1, 2, 3, 4]; console.log(head); // 1 console.log(tail); // [2, 3, 4] Exp 2: var [foo, [[bar], baz]] = [1, [[2], 3]]; foo /

ES6之Object.assign()详解

译者按: 这篇博客将介绍ES6新增的Object.assign()方法. 原文: ECMAScript 6: merging objects via Object.assign() 译者: Fundebug 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 将A对象的属性复制给B对象,这是JavaScript编程中很常见的操作.这篇博客将介绍ES6的Object.assign()属性,可以用于对象复制. 在JavaScript生态系统中,对象复制有另外一个术语: