ts 在 interface 定义时添加了泛型,使用该 interface 时候,能够不添加模板参数 或者 使用默认的 参数么?

2022-05-30 11:22:41 +08:00
 yazoox
interface item<T> {
    id: string;
    text: string;
    data?: T
}

const a: item<number> = {
    id: "1",
    text: "test1"
};

console.log(a);

如上所示。其实 a 里面压根就没有使用 data ,但我使用 item 的时候,必须给模板参数 T 指定一个。 这个是必须的么?

不如直接使用 any 好了?

interface item {
    id: string;
    text: string;
    data?: any
}

1409 次点击
所在节点    TypeScript
3 条回复
Leviathann
2022-05-30 11:24:14 +08:00
never
mufeng
2022-05-30 11:38:14 +08:00
interface item<T = unknown>
GentleFifth
2022-05-30 12:20:16 +08:00
泛型可以有默认类型

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/856174

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX