gpt4 book ai didi

typescript - 提取泛型接口(interface)的属性类型仍然需要不必要的泛型类型

转载 作者:行者123 更新时间:2023-12-04 10:48:48 25 4
gpt4 key购买 nike

当我有一个这样的泛型接口(interface)时:

   interface I1<S> {
a: string;
b: genericType<S>
}

并尝试提取属性类型 a使用 I1['a'] , typescript 抛出以下错误:
TS2314: Generic type 'I1<S>' requires 1 type argument(s).
这应该不是很好,因为提取的属性类型实际上并不依赖于 <S> ?要么我无法理解 Typescript 的实际工作原理,要么这确实应该没问题。

Playground Link

最佳答案

房产 a类型不依赖于 S ,但不能省略类型参数作为 lookup 的一部分.一些选项:

1.) 设置Sunknown

type T1 = I1<unknown>["a"] // string

2.) 声明 S 的默认值在界面中
interface I2<S = unknown> {
a: string;
b: S
}

type T2 = I2["a"] // string

3.) 保持通用
type T3<S> = I1<S>["a"]  // T3<S> = string
// doesn't make too much sense in this particular case

Here is a sample

关于typescript - 提取泛型接口(interface)的属性类型仍然需要不必要的泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59576819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com