2017-06-26 163 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