TypeScriptを使おうとするとビルドの手間がかかるので、小さいスクリプトで手軽に型チェックだけしたいときにJSDocで簡易的に型をつけたい。 1行目に @ts-check を書くのが重要 // @ts-check @typedef などを書くことで型チェックが行われてハッピーになれる /** * @typedef {Object} Payload * @property {string} channel - channelId * @property {Block[]} blocks - block */ /** * @typedef {Object} Block * @property {('section' | 'mrkdwn')} type - block type * @property {(Block | string)} text - inner block or text */ /** * @param {string} channelId - Slack channel ID * @param {string} message - message * @returns {Payload} */ function slackPayload(channelId, message) { // payloadを作成する処理... return { channel: channelId, blocks: [ { type: 'section', text: { type: 'mrkdwn', text: message, }, }, ], } } function send() { const payload = slackPayload('Cxxxxxx', 'hello'); // payloadを送信する処理.... }