在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
相关产品推荐
相关产品推荐

