/

使用 TypeScript 在物件解構中加上類型註解

使用 TypeScript 在物件解構中加上類型註解

最近,我使用 TypeScriptDeno 中建立了一個範例專案,並且需要對一個物件進行解構。我對 TypeScript 基礎有一定的了解,但有時候還是會遇到問題。

其中之一就是物件解構。

我想要這樣寫:

1
const { name, age } = body.value

我嘗試這樣加上 stringnumber 類型註解:

1
const { name: string, age: number } = body.value

但這並不正確。雖然程式碼看起來好像沒有問題,但實際上這會將 name 屬性賦值給 string 變數,並將 age 屬性值賦值給 number 變數。

正確的語法應該是這樣:

1
const { name, age }: { name: string; age: number } = body.value

處理這種情況的最佳方式是為這些資料創建一個類型或介面:

1
2
3
4
interface Dog {
name: string
age: number
}

然後你可以使用更簡潔的方式來寫上述程式碼:

1
const dog: Dog = body.value

tags: [“TypeScript”, “Deno”, “object destructuring”, “type annotation”]