TypeScript 完全な型シグネチャ

オーバーロード以外で、完全な型シグネチャを使用するケースです。
以下のように関数にプロパティがある時に、その関数のシグネチャとプロパティ(wasCalled)を完全な型シグネチャで表現します。
WarnUser型は、文字列を受け取ってアラートを出力する。ただし、アラートをあげるのは一度だけ。
type WarnUser = {
(warn: string): void
wasCalled: boolean
}
const warnUser: WarnUser = (warn: string) => {
if(warnUser.wasCalled) return
warnUser.wasCalled = true
alert(warn)
}
warnUser.wasCalled = false
wasCalled については、後から割り当てればTypeScriptのエラーにはならない。
シグネチャとは
関数やメソッドの名前、引数の数やデータ型、返り値の型などの組み合わせのこと。
最近のコメント