You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 15项目导入marked模块报错求助

解决Angular 15中marked模块编译报错TS1383的问题

问题原因

你遇到的TS1383: Only named exports may use 'export type'错误,是因为marked v10及以上版本采用了TypeScript 4.9+才支持的export type *语法,而Angular 15配套的TypeScript版本为4.8.x,版本不兼容导致编译失败。

解决方案

1. 降级marked至兼容版本

卸载当前安装的marked,安装v9.x系列版本(完全适配TS 4.8):

npm uninstall marked
npm install marked@^9.0.0

同步更新@types/marked到对应版本:

npm uninstall @types/marked
npm install --save-dev @types/marked@^9.0.0

2. 修正管道代码

marked v9的API调用方式和v10有区别,调整导入与逻辑实现,同时加入安全处理避免Angular过滤HTML:

import { Pipe, PipeTransform } from '@angular/core';
import { marked } from 'marked';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';

@Pipe({
  name: 'mdToHtml'
})
export class MdToHtmlPipe implements PipeTransform {
  constructor(private sanitizer: DomSanitizer) {}

  transform(value: string): SafeHtml {
    if (!value || value.length === 0) {
      return value;
    }
    const htmlContent = marked(value);
    return this.sanitizer.bypassSecurityTrustHtml(htmlContent);
  }
}

补充:Angular默认会拦截未标记为安全的HTML内容,使用DomSanitizer可以让框架信任转换后的结果,确保innerHTML绑定正常显示。

3. 验证修复效果

重新执行ng serve,此时编译流程可正常完成,管道也能正确将Markdown文本转换为HTML内容。

内容的提问来源于stack exchange,提问作者jlapuente

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 21:52:46