2017-09-04 121 views
0

任何人都可以幫助我理解並解決此錯誤嗎?無法將類型'數字'轉換爲類型'0'

vehicleId = mapping.VehicleId; 

這條線被突出顯示爲紅色,並顯示錯誤

無法將類型 '數字' 鍵入 '0'

  • vehicleId是鍵入number
  • 映射。 VehicleId型號爲number [但標記爲可選]

如這裏請求是這些變量/屬性定義的確切方式:

在功能塊:

let vehicleId = 0; 

在映射(注意,這是通過HTTP請求設定,不在代碼中):

VehicleId?: number; 
+1

加入,你聲明類型'vehicleId'和'mapping.VehicleId'代碼的部分(S),並在那裏你分配一個值到'mapping.VehicleId' –

+0

@NitzanTomer謝謝,更新了問題 – Chris

+0

你使用什麼版本的打字稿? –

回答

1

在打字稿中,每個數字的值也是一種類型,因此當您編寫let vehicleId = 0;它將被輸入0類型。那麼除了具有相同類型的東西(即0)之外,您不能指定任何內容。這有點令人困惑,但有這方面的用處。嘗試:

let vehicleId:number = 0;

let vehicleId = 0 as number; 
+1

*「當你寫let1 vehicleId = 0;它將被鍵入到類型0」* - 這是不正確的,'let vehicleId = 0'總是會創建一個'number'類型的變量,你可以在這個[demo]中驗證它(http://www.typescriptlang.org/play/#src=let%20value%20 %3D%200%3B%0D%0Avalue%20%3D%202%3B)。問題是,在某處,'vehicleId'被明確定義爲'let vehicleId:0',它不是值'0'的賦值,而是將類型設置爲數字文字(在這種情況下,可以是' 0')。這很可能是OP的錯字。 –

+0

@JohnWeisz這不是一個錯字 - 我仔細檢查。 VS說這是一個數字,但只有在將其類型指定爲數字後,錯誤纔會消失。 – Chris

+0

@Chris你正在使用什麼版本的打字稿? –

相關問題