gpt4 book ai didi

typescript :带接口(interface)的映射类型

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

当尝试将映射类型与接口(interface)一起使用时,我收到一个奇怪的错误 - 这让我认为根本不可能将它们一起使用..

请参阅相同的类型和接口(interface)声明:

type AllWorks<T> = {
[K in keyof T]: T[K];
}

interface DoesNotWork<T> {
[K in keyof T]: T[K];
}

虽然第一个按预期工作,但第二个给出了 TS 错误:
[ts] A computed property name must be of type 'string', 'number', 'symbol', or 'any'.
[ts] Member '[K in keyof' implicitly has an 'any' type.
[ts] Cannot find name 'keyof'.

所以我的问题是 - 甚至可以通过接口(interface)进行映射吗?如果是 - 那么如何?

最佳答案

到目前为止,在 TypeScript 中(从 2.7.2 版开始),接口(interface)中的联合类型签名是不允许的,而应该使用映射类型(正如您正确的那样)。
Docs .

关于 typescript :带接口(interface)的映射类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49284689/

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