gpt4 book ai didi

typescript - "could be instantiated with an arbitrary type which could be unrelated to"非常简单的例子

转载 作者:行者123 更新时间:2023-12-04 17:16:22 63 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Typescript Function with Generic Return Type

(2 个回答)


4 个月前关闭。




以下代码抛出错误:

'T' could be instantiated with an arbitrary type which could be unrelated to 'number'

interface Test {
a: <T>() => { b: T }
}

const eg: Test = {
a: () => ({ b: 3})
}
Playground Link
为什么它会抛出这个错误,我怎样才能让它接受它得到的类型是它会得到的唯一类型?

正是我想要做的:
type ForeignKeyValueType = {
foreignKey: <SCHEMA extends object>() => {
schema: SCHEMA,
propName: SCHEMA extends { props: any } ? KeyOf<SCHEMA["props"]> : never
}
}

最佳答案

您必须将泛型函数类型参数移动到整个接口(interface)的参数。通过这种方式,我们可以使类型参数对接口(interface)的所有其他成员可见。

interface Test<T> {
a: () => { b: T }
}

const eg: Test<number> = {
a: () => ({ b: 3})
}

关于typescript - "could be instantiated with an arbitrary type which could be unrelated to"非常简单的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68640026/

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