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

在Vite/Vue/TypeScript项目中如何导入Tonal的Scale类型?

正确导入Tonal中Scale类型的方法

在Vite/Vue/TypeScript项目中,要导入Tonal的Scale类型,需要直接从tonal/scale子模块导入,正确的类型导入语法如下:

import type { Scale } from 'tonal/scale'

为什么之前的导入方式失败?

  • import type { Scale } from 'tonal':Tonal主包默认导出的是工具函数集合,并没有将Scale类型作为命名导出暴露在主包中
  • import type { Scale.Scale } from 'tonal':语法错误,且主包不存在这种嵌套的类型导出结构
  • import type { Scale } from 'tonal/packages/scale':路径错误,Tonal的子模块应该通过tonal/[模块名]的形式访问,而非直接指向内部packages目录

同时导入工具函数和类型的写法

如果需要同时使用scale模块的工具函数和Scale类型,可以这样写:

// 导入工具函数对象
import ScaleUtils from 'tonal/scale'
// 导入类型
import type { Scale } from 'tonal/scale'

// 使用示例
const cMajorScale: Scale = ScaleUtils.get('C major')

或者使用TypeScript 4.5+支持的合并导入语法:

import ScaleUtils, { type Scale } from 'tonal/scale'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:31:15