1
any
を使用せずに、次の関数タイプをチェックすることはできません。私はこのエラーを取得しています制約ジェネリック型TとKここで、Kはkeyof Tを拡張し、T [K]はブール値ですか?
export function makeToggleState<T, K extends keyof T>(obj: {new(): T}, prop: K) {
return (state: T, show: boolean|null = null) => {
if (show === null) {
state[prop] = !state[prop]
} else {
state[prop] = show
}
}
}
class State {
value = true
}
makeToggleState(State, 'value')
:
Type 'false' is not assignable to type 'T[K]'.
Type 'false' is not assignable to type 'T[string]'.
(parameter) prop: K extends keyof T
私はK extends keyof T
とT[K] is boolean
をしたいコンパイラに指示するための最良の方法は何ですか?
「T」(この場合は「状態」)のすべてのメンバーはブール値になるのですか? –
@NitzanTomer私の場合ではありません。しかし、すべてのメンバーの解決策はブール値でも役に立ちます。 –