如何使用 JSDoc 定义部分对象(使所有属性可选)

Jak*_*eDK 1 types jsdoc

如何定义接受对象的部分或全部属性的类型?我知道我可以将每个属性标记为可选,但是有没有办法让所有属性都可选?

const defaults = {
    host: 'localhost',
    distDir: 'dist',
    entrypoint: '__app.html',
    app: `build/bundle.js`,
    spaPort: "5000",
    ssrPort: "5005",
    serveSpa: false,
    serveSsr: false,
}

/** 
* @param {defaults} options 
*/
function merge(options = {}){
  const allOptions = {...defaults, ...options)
}
Run Code Online (Sandbox Code Playgroud)

上面的代码显示警告 as {}does not meet defaults。我可以定义参数_options以接受 的任何子集defaults吗?

Jak*_*eDK 6

解决了

/** @param {Partial<defaults>} options */
Run Code Online (Sandbox Code Playgroud)