如何修复 Angular 18 错误:A namespace-style import cannot be called or constructed ...
问题
将 Angular 应用升级到 Angular 18 后,你看到如下构建错误:
ts_error.txt
✘ [ERROR] TS2349: This expression is not callable.
Type 'typeof import("/home/uli/myproject/node_modules/dayjs/index.d.ts")' has no call signatures. [plugin angular-compiler]
src/app/day-js.service.ts:37:15:
37 │ const d2 = dayjs(d);
╵ ~~~~~
Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.
src/app/day-js.service.ts:3:0:
3 │ import * as dayjs from 'dayjs'解决方案
Typescript 5.4 不再支持 import * as X from 'X。
因此,你需要将
namespace_import_bad.ts
import * as dayjs from 'dayjs'改为
default_import_fixed.ts
import dayjs from 'dayjs'Check out similar posts by category:
Angular, Typescript
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow