はじめに
Typescriptではいろいろな関数の書き方があるので簡単にまとめてみました。
戻り値の整理
-
void
: return文を持たない関数の戻り値 -
never
: 決して戻ることのない関数の戻り値- throwする時や、whileで無限に回したりするときに使う
用語の整理
-
パラメーター
: 関数宣言時に渡される(仮パラメーター) -
引数
: 関数を呼び出すときに渡す値(実パラメーター) -
戻り値
: 関数が返す値
いろいろな関数の書き方
アロー関数
src/function/basic.ts
export const logMessage = (message: string): void => {
console.log('sample 1:', message)
}
src/index.ts
import { logMessage } from './function/basic'
logMessage('Hello TypeScript!')
//sample 1: Hello TypeScript!
名前付き関数
src/function/basic.ts
export function logMessage2(message: string): void {
console.log('sample 2:', message)
}
src/index.ts
import { logMessage2 } from './function/basic'
logMessage2('Hello TypeScript!')
//sample 2: Hello TypeScript!
関数式
src/function/basic.ts
export const logMessage3 = function (message: string): void {
console.log('sample 3:', message)
}
src/index.ts
import { logMessage3 } from './function/basic'
logMessage3('Hello TypeScript!')
//sample 3: Hello TypeScript!
アロー関数式の省略記法
src/function/basic.ts
export const logMessage4 = (message: string): void => console.log('sample 4:', message)
src/index.ts
import { logMessage4 } from './function/basic'
logMessage4('Hello TypeScript!')
//sample 4: Hello TypeScript!
neverを戻り値として使う
src/function/basic.ts
export const alwaysThrowError = (message: string): never => {
throw new Error(message)
}