gpt4 book ai didi

javascript - typescript 如何将泛型分配给泛型变量字段

转载 作者:行者123 更新时间:2023-11-30 15:30:37 26 4
gpt4 key购买 nike

如何将通用类字段正确分配给通用本地字段?

例如,我在泛型类中实现了这个泛型接口(interface)

export interface TableBoxProps<T> {
getDataSource: <T> () => T[];
}

class Container<T> extends React.Component<TableBoxProps<T>, any>{ ... }

在某个地方我有一个函数,我想从数据源中获取一个条目,例如像这样

 private onCellClick = (row: number, column: number) => {
let entity:T = this.props.getDataSource()[row]; // error
}

我得到上面的错误

[ts] Type '{}' is not assignable to type 'T'

我必须更改什么才能使用 let entity:T?它适用于 any 类型,但我不想那样做。

最佳答案

您对 TableBoxProps<T> 的定义是错的。在 getDataSource: <T> () => T[]; , <T>不应该在这里,因为它声明了另一个泛型类型 T阴影 TableBoxProps<T> .您实际上在泛型接口(interface)中声明了一个泛型函数。

你写的等于:

export interface TableBoxProps<T1> {
getDataSource: <T2> () => T2[];
}

正确的解决方案应该是

export interface TableBoxProps<T> {
getDataSource: () => T[];
}

关于javascript - typescript 如何将泛型分配给泛型变量字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42299081/

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