typescript - 如何声明两个不可赋值的类型?

标签 typescript

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

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

我想让这些类型不可分配,以便当我尝试分配 x = yy = 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/

相关文章:

typescript - 在 TypeScript 中处理任意对象

无法识别 Angular 11 tsconfig 路径别名

javascript - 在 Modern React 中沿组件层次结构传递数据

javascript - Typescript 找不到在 "paths"设置中定义的模块

typescript - 类型 Window 上不存在 XMLHttpRequest

typescript - switchMap 给出 OperatorFunction<unknown, any>' 不可分配

typescript - 当两种类型都定义了相同的键但值的类型不同时,为什么我不能在另一种类型上使用一种类型的 keyof

javascript - 如何让私有(private)方法在 TypeScript 中工作?

javascript - 如何显示成功消息 NgRX Effects 和调度事件

javascript - ReactJS:渲染组件时触发方法