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

如何编写泛型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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:07:08