js中函数参数后面一个?是什么意思?

/**
 * Define a property.
 */
export function def (obj: Object, key: string, val: any, enumerable?: boolean) {
  Object.defineProperty(obj, key, {
    value: val,
    enumerable: !!enumerable,
    writable: true,
    configurable: true
  })
}

这段代码中enumerable后面的?是什么意思?

为什么我不能定义

clipboard.png

阅读 5.5k
3 个回答

Ts 写法,enumerable为boolean值 带问号表示可填可不填参数。前三个参数为必填项且参数类型也要和声明的一致

可选参数
下面的 !!enumerable,在此参数未输入时,值是 !!undefined = false

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题