gpt4 book ai didi

typescript - ArrayBufferLike 的 typescript 定义的深层含义

转载 作者:搜寻专家 更新时间:2023-10-30 21:10:00 38 4
gpt4 key购买 nike

ArrayBufferLike 的 typescript 定义是什么意思?

interface ArrayBufferTypes {
ArrayBuffer: ArrayBuffer;
}
type ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];

根据我的理解,keyof ArrayBufferTypesArrayBufferTypes属性的联合类型。所以,

type Properties = keyof ArrayBufferTypes; // 'ArrayBuffer'

因此 ArrayBufferLike 显然等于 ArrayBuffer

但必须有一些区别,否则 ArrayBufferLike 将被定义为 type ArrayBufferLike = ArrayBuffer

谁能帮忙解释一下这个定义?

最佳答案

原因是允许使用 declaration merging 扩展 ArrayBufferTypes .

此单成员接口(interface)在 lib.es5.d.ts 中定义

interface ArrayBufferTypes {
ArrayBuffer: ArrayBuffer;
}

但是具有相同名称但具有另一个成员的接口(interface)定义在 es2017.sharedmemory.d.ts

interface ArrayBufferTypes {
SharedArrayBuffer: SharedArrayBuffer;
}

当两个类型声明都包含在程序中时,声明将被合并并生成联合类型

type ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];

现在将有两个成员:ArrayBufferSharedArrayBuffer .

关于typescript - ArrayBufferLike 的 typescript 定义的深层含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416170/

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