如何编写泛型Object接口以适配不同类型的showInConsole函数
解决方案:编写泛型接口适配特定类型的函数
- 问题根源:原接口里的
showInConsole被定义为泛型函数,要求该函数能接收任意类型的参数,但实际的showInConsole只能接受特定的联合类型(Language或Country),导致类型不匹配。 - 修正方案:把
Object改成泛型接口,让接口绑定一个特定类型,以此约束showInConsole的参数类型。
适配第一个函数的代码
// function1 type Language = "en" | "de"; function showInConsole(value: Language) { console.log("language"); } // 泛型接口,T代表showInConsole的参数类型 interface Object<T> { showInConsole: (value: T) => void; } // 创建对象时指定泛型参数为Language const object: Object<Language> = { showInConsole }
适配第二个函数的代码
// function2 type Country = "it" | "gb"; function showInConsole(value: Country) { console.log("country"); } // 泛型接口,T代表showInConsole的参数类型 interface Object<T> { showInConsole: (value: T) => void; } // 创建对象时指定泛型参数为Country const object: Object<Country> = { showInConsole }
内容的提问来源于stack exchange,提问作者Dmytro
相关产品推荐
相关产品推荐

