2017-06-26 161 views
0

我是新的TypeScript/Angular JS 2.我有一個用C#編寫的函數,需要在TypeScript中進行轉換。下面是功能 -TypeScript數據類型鑄造

public static MyModel GetDetails(IDictionary<string, object> Obj) { 

    MyModel dlModel = new MyModel(); 
    if (Obj.ContainsKey("action")) 

    dlModel.action = ((IEnumerable<object>)Obj["action"]).Cast<string>().ToList(); 
    if (Obj.ContainsKey("parameters")) { 

    List<object> pr = ((IEnumerable<object>)Obj["parameters"]).Cast<object>().ToList(); 
    foreach (object obj in pr) { 
     IDictionary<string, object> kValue = (IDictionary<string, object>)obj; 

     dlModel.parameters.Add(new KeyValuePair<string, string>(kValue["Key"].ToString(), kValue["Value"].ToString())); 


    } 
} 

但我不知道如何在TypeScript中使用IDictionary和IEnumerable。所以任何人都可以幫助我在TypeScript數據類型。

+0

字典將是可轉位的對象和可枚舉的陣列。 – toskv

+0

這個問題對我來說不是很清楚。我不知道除了在TypeScript中編寫一個可能的實現之外,我能做些什麼。你在類型轉換時遇到了什麼問題,以及'IDictionary'和'IEnumerable'有什麼問題?基本上,您可以在TypeScript中爲'IDictionary'和'Iterable'使用'Map'或特殊類型'any'作爲'IEnumerable'。值可以通過keywourd'as'來投射。 – JojOatXGME

+1

@JojOatXGME在打字稿中沒有類型轉換,只有類型斷言。關鍵詞只是告訴編譯器變量的類型是什麼(它在運行時不會做任何事情)。 – toskv

回答

0

所以任何人都可以幫助我在TypeScript數據類型。

最好使用{[key: string]: SomeObject}其中SomeObject是給定字符串鍵

更多

上索引簽名的一些文檔:https://basarat.gitbooks.io/typescript/content/docs/types/index-signatures.html

+0

#basarat,目前尚不清楚,我如何在打字稿中轉換「IEnumerable 」。 – user3848036