【发布时间】:2020-11-27 12:25:44
【问题描述】:
我有一个类,它在构造函数中接受数组缓冲区参数,如下所示:
class Test {
public constructor(buffer: ArrayBuffer) {
...
}
}
问题是ArrayBuffer 类型是一个非常小的接口,它也会意外匹配类型化数组(不是数组缓冲区)。所以我的类也可以用类型化数组作为参数来构造。所以这两个调用都对编译器有效:
new Test(new Float32Array([ 1, 2, 3, 4 ]).buffer); // <-- Correct usage
new Test(new Float32Array([ 1, 2, 3, 4 ])); // <-- Wrong usage
为了防止以错误的方式使用我的 API,我希望编译器拒绝将类型化数组传递给构造函数。任何人都知道如何实现这一点的一个不错的小技巧?
【问题讨论】:
标签: typescript arraybuffer typed-arrays