如何声明两个不可分配的类型?

时间:2016-07-25 14:24:40

标签: typescript

我有一个FFI绑定,并且有几个地方使用void *。我想在Typescript方面区分那些。我所做的是:

interface Struct1Ptr extends Buffer {};
interface Struct2Ptr extends Buffer {};
var x: Struct1Ptr;
var y: Struct2Ptr;

我想让这些类型无法分配,因此当我尝试分配x = yy = x或使用错误的类型作为函数的参数时,会发出错误信号。

1 个答案:

答案 0 :(得分:3)

Typescript对所有东西使用结构类型,所以你实际上必须使它们在结构上不同,例如:

interface Struct1Ptr extends Buffer { _isStruct1: void };
interface Struct2Ptr extends Buffer { _isStruct2: void };
var x: Struct1Ptr;
var y: Struct2Ptr;