相关疑难解决方法(0)

1761
推荐指数
23
解决办法
82万
查看次数

如何在TypeScript中迭代字符串索引数组?

我已经定义了一个静态属性:

private static colorsByName: { [index: string]: MyColorClass}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用for... of此处列出的答案时:TypeScript for-in语句

for(let value of MyClass.colorsByName) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

输入{[index:string]:MyColorClass; }不是数组类型或字符串类型.

如果我切换到使用for in,则错误消失,但value输入为any.

for(let value of MyClass.colorsByName) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

value在这种情况下,实际的类型是什么?理想情况下,我想循环遍历colorsByName属性中的所有值,无论是在成对方法中,还是只是为了MyColorClass返回返回的类型.

for(let value of MyClass.colorsByName) {
    // value: MyColorClass
}
Run Code Online (Sandbox Code Playgroud)

我有什么选择?

typescript typescript1.7

10
推荐指数
2
解决办法
5841
查看次数

在打字稿中迭代数组

我想迭代对象数组并在打字稿中访问该迭代对象的属性值。

在 C# 中执行此操作,只需通过数组执行 foreach 即可。

在打字稿中,这似乎有点不同。我们可以执行 foreach,但我们无法访问“完整”对象,该怎么办?

@Input() gridDefinitions: GridColumnDefinition[]   
 public test() {
     for (var def **in** this.gridDefinitions){
       var test = <GridColumnDefinition>this.selectedObject;
       let castedtype = <GridColumnDefinition>def; // this gives an error
    }  
 }
Run Code Online (Sandbox Code Playgroud)

更新:我刚刚遇到了解决方案。问题在于如何迭代集合。当使用of代替in时,我们可以访问迭代对象。请参阅TypeScript for-in 语句

arrays loops typescript angular

4
推荐指数
1
解决办法
1万
查看次数

循环内的Typescript类型推断

这看起来像打字稿编译器的问题,但不确定,也许我不理解打字稿类型推断.任何人都可以解释这个问题:

我有这个简单的代码在"TypeAs"列表上执行某些操作.当列表的类型为"TypeA []"时,变量"item"的类型为"Any".因此,为了具有类型安全性和智能感知,我必须转换类型.

    var list: TypeA[] = this.getListOfTypeAs();
    for (var item in list) {
        var typedItem = (<TypeA> item); //clearly a problem with typescript 
Run Code Online (Sandbox Code Playgroud)

为什么?

typescript

-1
推荐指数
2
解决办法
740
查看次数