[英]Type narrowing object properties with a function
我有一個具有許多嵌套屬性的復雜類型。 我想要縮小類型。 這似乎適用於基本原語,但是當涉及 object 時,TS 似乎無法使用相同的原則縮小屬性范圍。
type Test = {
property: string | null
}
const propIsNotNull = (data: Test): boolean => {
return (data.property !== null)
}
const testData: Test = {
property: 'nonull'
}
if (propIsNotNull(testData)) {
console.log(testData.property.toUpperCase())
// ~~~~~~~~~~~~~~~~~
// 'testData.property' is possibly 'null'.(18047)
}
我當然可以將其更改為以下內容,但這會使代碼更難閱讀
if (testData.property !== null) {
console.log(testData.property.toUpperCase())
}
我真的不想為了使用類型保護而創建一個新類型。 我覺得我缺少一些基本簡單的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.