我有一个FFI绑定,并且有几个地方使用void *
。我想在Typescript方面区分那些。我所做的是:
interface Struct1Ptr extends Buffer {};
interface Struct2Ptr extends Buffer {};
var x: Struct1Ptr;
var y: Struct2Ptr;
我想让这些类型无法分配,因此当我尝试分配x = y
或y = x
或使用错误的类型作为函数的参数时,会发出错误信号。
答案 0 :(得分:3)
Typescript对所有东西使用结构类型,所以你实际上必须使它们在结构上不同,例如:
interface Struct1Ptr extends Buffer { _isStruct1: void };
interface Struct2Ptr extends Buffer { _isStruct2: void };
var x: Struct1Ptr;
var y: Struct2Ptr;