-1
汎用クラスフィールドを汎用ローカルフィールドに正しく割り当てるにはどうすればよいですか?私は、例えば、データソースからのエントリを取得したい私は機能を持っているTypescriptジェネリック変数フィールドにジェネリックを割り当てる方法
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
でうまく動作しますが、私はそれをしたくありません。
Thx。私はReactJを使っているので、 'this.props.getDataSource()[row]をTにキャストしなければなりませんでした。 –
しかし、私がジェネリッククラスに入っているときになぜそれを 'T'にキャストしなければならないのか説明できますか? –
あなたのクラス定義を表示してください - そこにあるかもしれません –