0
這工作爲什麼TypeScript不能在沒有聲明的情況下破壞?
let {a, b} = { a: 1, b: 2 }
但這不是
let a: number, b: number
{a, b} = { a: 1, b: 2 }
真奇怪。這是應該的方式還是我錯過了什麼?
這工作爲什麼TypeScript不能在沒有聲明的情況下破壞?
let {a, b} = { a: 1, b: 2 }
但這不是
let a: number, b: number
{a, b} = { a: 1, b: 2 }
真奇怪。這是應該的方式還是我錯過了什麼?
在第一個例子中,你已經聲明類型的值,編譯已經知道變量是數字。您只能在對象({} = {})中使用打字稿中的解構賦值語法並在打字稿中聲明,在ES6中您可以不經過聲明。
// let {a, b} = { a: 1, b: 2 }
var _a = { a: 1, b: 2 }, a = _a.a, b = _a.b;
//let a: number, b: number;
//{a, b} = { a: 1, b: 2 } <-- Print error in compilation
{
a, b;
}
{
a: 1, b;
2;
}
//let a: number, b: number;
//[a, b] = [1,2]
_b = [1, 2], a = _b[0], b = _b[1];
var _b;
這是兩個例子中編譯的結果。