【Vue】swagger-typescript-codegenで生成したコードが動かない

応急処置だが動いたので方法を載せます

環境

記事投稿時点(2020/04/19)での各ライブラリのバージョン

"dependencies": {
    "@types/superagent": "^4.1.7",
    "superagent": "^5.2.2",
    "swagger-typescript-codegen": "^3.0.5"
  }

エラー内容

api.ts:166:42 - error TS2339: Property 'default' does not exist on type 'SuperAgentStatic'.

166       this.configureAgentHandler(request.default) :
                                             ~~~~~~~

api.ts:167:15 - error TS2339: Property 'default' does not exist on type 'SuperAgentStatic'.

167       request.default;
                  ~~~~~~~

Found 2 errors.

原因と解決法

新バージョンのsuperagentswagger-typescript-codegenが対応していないためだと予想

  1. superagentのバージョンを下げる

^5.2.2 => ^4.0.0に下げた

"dependencies": {
    "@types/superagent": "^4.1.7",
    "superagent": "^4.0.0",
    "swagger-typescript-codegen": "^3.0.5"
  }
  1. コードを修正
    const agent: request.SuperAgentStatic = this.configureAgentHandler ?
      this.configureAgentHandler(request.default) :
      request.default;

    ↓↓↓

    const agent: request.SuperAgentStatic = this.configureAgentHandler ?
      this.configureAgentHandler(request) :
      request;

参考にした記事など

Fix @types/superagent has no default export by scottc · Pull Request #64 · mtennoe/swagger-typescript-codegen
Fix @types/superagent has no default export. Although this might be an issue with the "@types/superagent": "^4.1.0" type definition. With typescript "strict": t...

コメント

タイトルとURLをコピーしました