gpt4 book ai didi

javascript - typescript:索引类实例

转载 作者:行者123 更新时间:2023-11-28 01:23:24 25 4
gpt4 key购买 nike

这一行没有错误

            if (!t[1]) {
t[1] = [];
}

t[1].push(key);

t 是 Test 类型,不能直接索引。但是,它有一个可以索引的成员 data。那么为什么这些行没有错误。

ITestData 建模一个嵌套对象,分别具有整数和字符串键。

{ 
1 : {
"hello" : {}
}
2 : { ..
}

demo

代码:

export interface ITestData {
[idx:number] : {[prop:string]:any}
}

export interface ITest {
data:ITestData
}

export class Test implements ITest {
data:ITestData = {};
}

class Greeter {
data:ITestData = {};

private del(t:Test, key:string) {
if (!t[1]) {
t[1] = [];
}

t[1].push(key);
}
}

最佳答案

JavaScript 中的所有内容都可以通过字符串(以及使用 number.toString() 的数字)进行索引。 TypeScript 将允许按字符串(和数字)进行索引。

您所经历的情况的更简单版本:

var foo = {data:123};
var bar = foo[0]; // Valid : bar is of type any

您可以阻止将什么分配给索引成员,例如索引时,在以下情况下只能分配 Foo:

var bas: {[index:string]:Foo}; 

但是您不能同时禁用索引(即您可以限制读/写的类型,但不能限制您可以读/写的事实)。

关于javascript - typescript:索引类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23025403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com