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

如何在ASP.NET Core项目的.ts文件中使用开源TypeScript库

解决步骤

1. 修正tsconfig.json配置

你当前报错的核心原因是tsconfig.json中关闭了Node模块解析规则,导致TypeScript无法正确识别npm包的路径和自带的类型声明,修改配置如下:

{
  "compileOnSave": true,
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "module": "ES2015",
    "moduleResolution": "node", // 取消这行的注释,开启Node模块解析
    "outDir": "wwwroot/js",
    "typeRoots": ["./node_modules/@types", "./node_modules"] // 新增这行,指定类型声明查找路径
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ],
  "include": [
    "scripts/**/*"
  ]
}

这里exclude配置保留node_modules即可,不需要编译库的源码,只要让TS能找到类型声明就行。

2. 正确引入库

删除你之前写的/// <reference path=引用语句,直接按照官方文档写法引入即可:

import * as Tone from 'tone';

// 测试代码,可直接运行不会再报找不到名称的错误
const synth = new Tone.Synth().toDestination();
synth.triggerAttackRelease("C4", "8n");

3. 静态资源复制到wwwroot

你不需要编译库源码,直接用npm包内已经构建好的产物即可,两种常用方案:

  • 手动复制:将node_modules/tone/build/Tone.min.js和对应的map文件复制到wwwroot/lib/tone目录下,在页面中通过script标签引入后即可使用。
  • 自动复制:如果不想每次更新包都手动复制,可以在ASP.NET Core项目的csproj文件中加入生成事件,编译时自动复制对应文件到wwwroot。

常见疑问说明

不需要引入库的完整TypeScript源码,这类TS编写的开源库本身已经自带了完整的.d.ts类型声明,只要模块解析配置正确,TypeScript就能自动识别类型,不需要额外手动引用d.ts文件。

内容的提问来源于stack exchange,提问作者g.pickardou

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:48:03