2016-03-26 30 views
1

我發現了TypeScript中的解構功能,它看起來像一個定時器。不過,我想知道如何使用解構時可以引用傳遞給函數的實例。下面的例子:解構時傳遞的訪問實例

function fn({foo, bar}) { 
    // access the A instance passed to function? 
} 
class A { 
    constructor(public foo: number, public bar: number) {}; 
} 
fn(new A(1,9)); 

我真的要看看參數列表還是我錯過了什麼?

回答

2

可以用解構的方法中,而不是作爲一個參數,享受兩全其美

function fn(a: A){ 
var {foo, bar} = a; 
} 

class A{ 
    foo:number; 
    bar:number; 
} 

fn(new A()); 

here它所transpiles來,這樣你就可以擁有它是如何工作的,它的想法不是魔術。 這是一個documentation爲打字稿解構

+0

那麼,這個想法是爲了避免a.foo - 我不明白這個解決方案如何利用解構? – Peter

+0

我編輯了答案,希望這是你想要的 –

+0

我的問題是,它不允許默認參數值。任何人都知道有兩種方法? –

1

也許你應該簡單地使用破壞後一步?

function fn(a: A) 
{ 
    let {foo, bar} = a; 
    //You have both destruted foo, bar and original a 
} 
相關問題