我有一个 FFI 绑定(bind),并且有几个地方使用了 void *
。我想区分 Typescript 方面的那些。我所做的是:
interface Struct1Ptr extends Buffer {};
interface Struct2Ptr extends Buffer {};
var x: Struct1Ptr;
var y: Struct2Ptr;
我想让这些类型不可分配,以便当我尝试分配 x = y
或 y = x
或使用错误类型作为参数时,会发出错误信号到函数。
最佳答案
Typescript 对所有内容都使用结构类型,因此您实际上必须使它们在结构上有所不同,例如:
interface Struct1Ptr extends Buffer { _isStruct1: void };
interface Struct2Ptr extends Buffer { _isStruct2: void };
var x: Struct1Ptr;
var y: Struct2Ptr;
关于typescript - 如何声明两个不可赋值的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38570378/