interface State {
customerId: number,
step: string
}
const data: State = {
step: 'shipping',
customerId: 123
}
const setData = (key: string, value: number) => {
data[key] = value
}
setData('customerId', 555)
我嘗試更改 customerId 的值,但出現錯誤: 在“State”型別上找不到帶有“string”型別引數的索引簽名。
我如何設定新值?
uj5u.com熱心網友回復:
您需要更改 的定義setData以包含通用引數K。K代表State您正在嘗試修改的密鑰。的型別value將是State[K]。這就是我們如何建模key和value引數之間的關系。
const setData = <K extends keyof State>(key: K, value: State[K]) => {
data[key] = value
}
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/479147.html
標籤:打字稿
下一篇:鍵入toPrimitives界面
