gpt4 book ai didi

typescript - 在 typescript 中,索引签名标识符有什么用?

转载 作者:搜寻专家 更新时间:2023-10-30 20:33:41 24 4
gpt4 key购买 nike

索引签名标识符有什么作用?

interface IIndex {
[something: string]: any;
}

有人会在哪里再次使用“something”?

或者换句话说,为什么语法不只是:

interface IIndex {
[string]: any;
}

最佳答案

我的猜测是,这是出于一致性和与 JavaScript 接近的原因。

就像命名方法参数(甚至在接口(interface)中)很常见一样,TS 中方法、构造函数、函数和索引器的所有参数都必须采用 name: typename 格式(意思是 name: any)。 (故事的简化版,但我相信你明白我的意思)

由于名称和类型存在于 TypeScript 中的不同命名空间中,因此 string 形式的参数会产生歧义。请记住,TypeScript 的使命是与 JavaScript 保持接近,因此将上面的内容解释为 string 类型的参数是 Not Acceptable ,事实证明它确实等同于 string: any .

此外,虽然索引器可能是个异常(exception),因为它们只能是 stringnumber 类型,但情况并非总是如此(TS 0.8 允许 any),所以另一个原因可能是为了便于迁移到 0.9。

关于typescript - 在 typescript 中,索引签名标识符有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515593/

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