以下に、いくつかの方法と具体的なコード例を示します。
- ユニオン型を使用した関数の定義
function processData(): string | number {
// 何らかの条件に基づいて、文字列または数値を返す
if (/* 条件 */) {
return "文字列";
} else {
return 42;
}
}
上記の例では、processData
関数は文字列または数値のいずれかを返す可能性があります。関数の戻り値の型注釈としてstring | number
を使用し、条件に基づいて適切な型を返します。
- ジェネリックスを使用した関数の定義
function processData<T extends string | number>(): T {
// 何らかの条件に基づいて、T型の値を返す
if (/* 条件 */) {
return "文字列" as T;
} else {
return 42 as T;
}
}
上記の例では、processData
関数はジェネリック型T
を使用して、文字列または数値のいずれかを返すことができます。関数を呼び出す際に、具体的な型を指定することもできます。
- 独自の型を使用した関数の定義
type Result = {
success: boolean;
value: string | number;
};
function processData(): Result {
// 何らかの条件に基づいて、Result型の値を返す
if (/* 条件 */) {
return { success: true, value: "文字列" };
} else {
return { success: true, value: 42 };
}
}
上記の例では、Result
という独自の型を定義し、processData
関数はResult
型の値を返します。Result
型にはsuccess
とvalue
というプロパティがあり、value
は文字列または数値のいずれかを表します。
これらの方法を使用することで、TypeScriptで関数が二つの型のうちの一つを返すことができます。必要に応じて、それぞれの方法を適用してみてください。