-   #123
-   #122
-   #121
-   #120
-   #119
-   #118
-   #117
-   #116
-   #115
-   #114
-   #113
-   #112
-   #111
-   #110
-   #109
-   #108
-   #107
-   #106
-   #105
-   #104
-   #103
-   #102
-   #101
-   #100
-   #99
-   #98
-   #97
-   #96
-   #95
-   #94
-   #93
-   #92
-   #91
-   #90
-   #89
-   #88
-   #87
-   #86為什麼 TypeScript 中 Object.keys 接受任何物件都只返回 string[] 型別?  如圖中錯誤訊息得知 person會需要接受特定值的key而非任意string,那背後麼又是什麼原因Object.keys被設計成返回更為鬆散的string[]型別呢?明明很明顯可以透過keyof得出所有key的型別?因為 JavaScript 物件可以 「在執行時動態改變其內容」。 如果將 Object.keys設計成返回(keyof T)[],該型別定義無法準確反映 JavaScript 物件在運行時可能遭遇的變化,因為物件屬性可以被動態修改,所以 TypeScript 選擇使用更寬鬆的string[]型別來確保安全。結論: TypeScript 尊重 JavaScript 動態型別的特性,導致 Object.keys 最多只能確保返回 string[]型別。分析細節與引用參考還有三種應對方式寫在部落格中:為什麼 TypeScript 中 Object.keys 返回 string[] 型別? 
-   #85
-   #84
-   #83
-   #82
-   #81
-   #80
-   #79
-   #78
-   #77
-   #76
-   #75
-   #74
-   #73
-   #72
-   #71
-   #70
-   #69
-   #68
-   #67
-   #66
-   #65
-   #64
-   #63
-   #62
-   #61
-   #60
-   #59
-   #58
-   #57
-   #56
-   #55
-   #54
-   #53
-   #52
-   #51
-   #50
-   #49
-   #48
-   #47
-   #46
-   #45
-   #44
-   #43
-   #42
-   #41
-   #40
-   #39
-   #38
-   #37
-   #36
-   #35
-   #34
-   #33
-   #32
-   #31
-   #30
-   #29
-   #28
-   #27
-   #26
-   #25
-   #24
-   #23
-   #22
-   #21
-   #20
-   #19
-   #18
-   #17
-   #16
-   #15
-   #14
-   #13
-   #12
-   #11
-   #10
-   #9
-   #8
-   #7
-   #6
-   #5
-   #4
-   #3
-   #2
-   #1