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を送信する処理....
}