Jakeuj's Notes master Help

[NSwag] error TS2349: Cannot invoke an expression whose type lacks a call signature.

tsconfig.json 更新 es6 Ts3 之後可能遇到 MomentJS import 報錯

這邊筆記修改樣板 (NSwag Template) 來解決此問題的步驟

先下結論

1.修改NSwag樣板檔案來符合ES6

NSwag GitHub > File.liquid

下載後把L60

mport * as moment from 'moment';

改成

mport moment from 'moment';

參照: Change momentjs import (TS)

2.修改 service.config.nswag

找到 "templateDirectory": null,

改成你放修改後的樣板的目錄

EX: "templateDirectory": "TemplateDirectory",

參照: Templates

總之為了使用新版Json檔案讀取,更新了TS3啟用ES6規範之類的,然後編譯發現會報錯

接著大概知道要改import但每次NSwag refresh自動生成Code都要手動改一次 覺得麻煩

最後找到改樣板可以解決這問題,目前NSwag還沒決定最終解決方案,目前就先這樣改吧

error TS2349: Cannot invoke an expression whose type lacks a call signature.

Type 'typeof import("node_modules/moment/moment.d.ts")' has no compatible call signatures.

參照: Typescript compilation error when using momentjs and TypeScript 3

Jakeuj

PS5

  • Angular

  • TypeScript

  • NSwag

  • ES6

  • 回首頁

本文章從點部落遷移至 Writerside

13 October 2025