首页 > 其他分享 >TypeScript 如何实现一个二选一的 interface?

TypeScript 如何实现一个二选一的 interface?

时间:2023-11-22 20:32:16浏览次数:34  
标签:TypeScript obj propA propB 二选 MyInterface interface console 属性

在TypeScript中,如果你想定义一个只能选择其中一个属性的接口,你可以使用联合类型来实现。以下是一个示例:

interface MyInterface {
  propA?: string;
  propB?: number;
}

let obj: MyInterface = {
  propA: "Hello"
};

console.log(obj.propA); // 输出: Hello
console.log(obj.propB); // 输出: undefined

在上面的示例中,我们定义了一个名为MyInterface的接口,它具有两个可选属性propApropB。当我们创建一个对象obj时,我们只对propA进行了赋值,而propB保持为undefined。这意味着我们只能访问和使用propA属性。

同样,我们可以通过设置propB属性来实现选择另一个属性的功能:

let obj: MyInterface = {
  propB: 10
};

console.log(obj.propA); // 输出: undefined
console.log(obj.propB); // 输出: 10

现在,我们只能访问和使用propB属性。

通过这种方式,我们可以根据需求选择使用一个属性或另一个属性,而不必同时使用它们。

标签:TypeScript,obj,propA,propB,二选,MyInterface,interface,console,属性
From: https://blog.51cto.com/M82A1/8519636

相关文章

  • 关于 ts(TypeScript)报错一行上方使用 // @ts-ignore来忽略错误问题
    比如你的代码当中是使用Ts写的脚本,那么可能会有一些出现报错的情况,那么这个时候你可以使用://@ts-ignore写上这个,你的代码就不会出现报错的情况了,比如下面的代码App.VS.getView("MainLineView")?.test();即使你的类名MainLineView没有写这个方法,也不会出现报错的问题,虽然简单......
  • Configuration error: VRRP definition must belong to an interface
     lobal_defs{}vrrp_instanceVI_1{stateMASTER#指定A节点为主节点备用节点上设置为BACKUP即可interfaceeth0#绑定虚拟IP的网络接口virtual_router_id51#VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组priority100......
  • kubernetes container device interface (CDI)
    CDI是什么?ContainerDeviceInterface(CDI)是一个提议的标准,它定义了如何在容器运行时环境中向容器提供设备。这个提议的目的是使得设备供应商能够更容易地将其设备集成到Kubernetes集群中,而不必修改Kubernetes核心代码。CDI插件通常负责:配置设备以供容器使用(例如,分配......
  • 微信小程序TypeScript请求封装(TS+request)
    目录结构-WxApp-api请求方式-index.ts统一输出api接口-base.ts环境判断-user对应数据请求-userApi.ts-utils-request.ts封装请求封装request首先,我们先搞w......
  • 定义了一个interface
    定义了一个interface  exportinterfacelogin_info{userid:string,//用户编号password:string,//用户密码snid:string,//snid唯一识别码usertype:number//用户类型,1客户,2供应商,3员工,4erp用户}本来是import{login_info......
  • vscode上面运行typescript
    参考:如何在vscode上直接运行typescript1.下载nodejs,安装nodejs,安装成功后,打开cmd,输入node-v,运行,可以看到nodejs的版本号2.安装typescript,控制台上运行npminstalltypescriptts-node@types/node@*-g(如果下载速度慢,可以使用国内淘宝镜像,先执行npmins......
  • 接口(interface)
    一、前言面向接口编程,抽象方法是模板,接口是规范二、接口的基本内容:interfaceIFather{//静态常量可以省略static和final关键字publicstaticfinalStringNAME="张三";//抽象方法可以省略abstract关键字publicvoideat();......
  • TypeScript的5个常见用法
    TypeScript是一种静态类型的JavaScript超集,它提供了额外的类型系统和一些ECMAScript新特性的支持。以下是TypeScript的一些常见用法:1:类型注解:TypeScript允许在变量、函数、参数、返回值等地方添加类型注解,明确指定变量的类型。例如:letname:string='John';functiongr......
  • abstract class 和 interface 有什么区别
    目录abstractclass和interface有什么区别1.抽象类1.1抽象类的格式1.2抽象类注意事项2.接口2.1接口的格式2.2接口可以多继承2.3接口的实现(implements)3.异同abstractclass和interface有什么区别1.抽象类抽象类:声明方法的存在而不实现的类,如果一个类中没有包含足够的......
  • 在 TypeScript 中,extends
    extends是一个关键字,用于指定类型参数的约束。它在类型参数的声明中使用,以确保类型参数满足特定的条件。具体来说,extends后面可以跟随一个类型,表示类型参数必须是该类型的子类型。在泛型类型或泛型函数中,这样的约束可以提供更强的类型安全性,使得类型参数符合特定的要求。以下......