使用 TypeScript 在物件解構中加上類型註解
最近,我使用 TypeScript 在 Deno 中建立了一個範例專案,並且需要對一個物件進行解構。我對 TypeScript 基礎有一定的了解,但有時候還是會遇到問題。
其中之一就是物件解構。
我想要這樣寫:
1 | const { name, age } = body.value |
我嘗試這樣加上 string
和 number
類型註解:
1 | const { name: string, age: number } = body.value |
但這並不正確。雖然程式碼看起來好像沒有問題,但實際上這會將 name
屬性賦值給 string
變數,並將 age
屬性值賦值給 number
變數。
正確的語法應該是這樣:
1 | const { name, age }: { name: string; age: number } = body.value |
處理這種情況的最佳方式是為這些資料創建一個類型或介面:
1 | interface Dog { |
然後你可以使用更簡潔的方式來寫上述程式碼:
1 | const dog: Dog = body.value |
tags: [“TypeScript”, “Deno”, “object destructuring”, “type annotation”]