TypeScript文件数组常量类型不匹配报错问题排查
问题原因与解决方案
错误根源
你给pareditCommands定义的类型[[string, Function]]是错误的:
- 这个类型表示外层数组仅包含1个元素,且该元素是一个
[string, Function]类型的数组 - 但你的代码里,外层数组实际包含了22个
[string, Function]类型的元素,类型完全不匹配,所以TypeScript抛出了“源有22个元素,但目标只允许1个”的错误
修正方案
把类型注解改成元素为[string, Function]的数组类型,有两种写法可选:
写法1:使用数组泛型
const pareditCommands: Array<[string, Function]> = [ // 原有命令列表... ];
写法2:使用数组后缀语法
const pareditCommands: [string, Function][] = [ // 原有命令列表... ];
两种写法效果完全一致,选你习惯的即可。修正后TypeScript就能正确识别数组的结构,错误会消失。
内容的提问来源于stack exchange,提问作者tohoyn
相关产品推荐
相关产品推荐

