与类型Plugin_2和PluginOption相比堆栈深度过高。ts2321
这个错误通常发生在使用 TypeScript 编写插件时,当传递给插件的参数过多时会出现这个错误。这是因为 TypeScript 编译器在分析函数参数类型时会递归调用,导致堆栈深度过深。
解决方法可以通过将参数拆分为更小的部分,或者使用可选参数和默认值来减少参数数量。另外,也可以通过使用 any 类型来避免 TypeScript 编译器对参数类型的递归调用。
例如,将参数拆分为更小的部分:
interface Plugin_2Options {
option1: string;
option2: number;
}
interface Plugin_2 {
(name: string, options: Plugin_2Options): void;
}
interface PluginOption {
name: string;
options: Plugin_2Options;
}
function myPlugin(name: string, options: Plugin_2Options): void {
// ...
}
function myPluginWrapper({ name, options }: PluginOption): void {
myPlugin(name, options);
}
或者使用可选参数和默认值:
interface Plugin_2 {
(name: string, options?: { option1?: string, option2?: number }): void;
}
function myPlugin(name: string, options: { option1?: string, option2?: number } = {}): void {
// ...
}
或者使用 any 类型:
interface Plugin_2 {
(name: string, options: any): void;
}
function myPlugin(name: string, options: any): void {
// ...
}
``
原文地址: https://www.cveoy.top/t/topic/cOkU 著作权归作者所有。请勿转载和采集!