Closed5
openapi-typescript を分解する

自作型付きクライアントを得るまでの道のり記録

とりあえずパメラータとレスポンスは以下で取れそう
type param = paths['/internal/v1/users']['get']['parameters'];
type res = paths['/internal/v1/users']['get']['responses']['200']['content']['application/json'];

呼び出し側から指定するパラメータは取れた
ただこうしちゃうとMethodTypeから先がうまく取れない気がする
/**
* URL型
*/
type Path = keyof paths;
/**
* get, post 等
*/
type MethodType = keyof paths[keyof paths];

形としてはこんな感じになるはず
get は .get とかメソッドチェーンで指定したいところではあるけどこれでも問題なし
const request = async (path: Path, method: MethodType) => {
return { path, method };
};
const result = request('/internal/v1/users', 'get');
console.log(result)
第二パラメータが全く絞り込めてないので全部でてしまっている。path の型で絞る必要がある

パスパラメータで複雑性がやばくなってきたので断念
このスクラップは2024/12/10にクローズされました