TypeScript での satisfies の機能をうまく把握できず、使うべきタイミングがよくわかりません…
たとえば以下のように [規定値を返す場合] と [オプショナルな場合] があるとしたら、方針としては A / B のどちらが推奨されますか?
A: 即時 return と satisfies で使い分ける方針
[規定値を返す場合]: 即時 return を使う
TypeScript
1export function createAaaUseCases( 2 config: AaaUseCasesConfig 3): AaaUseCases { // ️☑️戻り値型で縛る 4 return { 5 async create() { ... }, 6 async cancel() { ... }, 7 }; // ⚠️satisfiesで縛らない(returnなので縛れない) 8}
[オプショナルな場合]: satisfies を使う
TypeScript
1export function createBbbUseCases( 2 config: BbbUseCasesConfig 3) { // ⚠️戻り値型で縛らない 4 const bbb = { 5 async create() { ... }, 6 async cancel() { ... }, 7 } satisfies BbbUseCases; // ✅satisfiesで縛る 8 9 // オプショナルな条件を追加 10 if (config.data) { 11 bbb.update = () => { ... }; 12 } 13 14 return bbb; 15}
B: 念のために常に satisfies にする方針
[規定値を返す場合]: satisfies を使う
TypeScript
1export function createAaaUseCases( 2 config: AaaUseCasesConfig 3) { // ⚠️戻り値型で縛らない 4 const aaa = { 5 async create() { ... }, 6 async cancel() { ... }, 7 } satisfies AaaUseCases; // ✅satisfiesで縛る 8 9 return bbb; 10}
[オプショナルな場合]: satisfies を使う
TypeScript
1export function createBbbUseCases( 2 config: BbbUseCasesConfig 3) { // ⚠️戻り値型で縛らない 4 const bbb = { 5 async create() { ... }, 6 async cancel() { ... }, 7 } satisfies BbbUseCases; // ✅satisfiesで縛る 8 9 // オプショナルな条件を追加 10 if (config.data) { 11 bbb.update = () => { ... }; 12 } 13 14 return bbb; 15}
回答1件
あなたの回答
tips
プレビュー
2025/12/25 06:59