簡體   English   中英

typescript,部分錯誤<t> ?</t>

[英]typescript, bug with Partial<T>?

以下代碼引發錯誤。 但是if確保e不是未定義的。 這是來自 typescript 的錯誤還是正常行為? 另外,這樣做的正確方法是什么?

function Foo<T>(data: T, partialData: Partial<T>, key: keyof T) {
    const e = partialData[key];
    if (e)
        data[key] = e;
}
Type 'T[keyof T] | undefined' is not assignable to type 'T[keyof T]'.
  Type 'undefined' is not assignable to type 'T[keyof T]'.

您可以像這樣使用as T[keyof T]來解決問題:

function Foo<T>(data: T, partialData: Partial<T>, key: keyof T) {
    const e = partialData[key];
    if (e)
        data[key] = e as T[keyof T];
}

在這里你在操場上檢查它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM