JSDoc TSの場合、ユニオンを改行して書く場合は括弧が必須・・・! pic.twitter.com/C845A6PyPw
— りぃ🐧 / Yuji Sugiura (@leader22) 2022年11月18日
この画像のとおり。
こういうこと
/** * @typedef {{ type: "x", data: number }} X * @typedef {{ type: "y", data: string }} Y * * @typedef {X | Y} XY1 * @typedef { * | X * | Y * } XY2 * @typedef {( * | X * | Y * )} XY3 */ /** @type {XY1} */ const xy1 = { type: "x", data: "-" }; // 型エラー /** @type {XY2} */ const xy2 = { type: "x", data: "-" }; // 型エラーにならない /** @type {XY3} */ const xy3 = { type: "x", data: "-" }; // 型エラー
あろうことか`any`になっちゃうので注意・・・。