首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关键字或关键字外的字段的约束

关键字或关键字外的字段的约束
EN

Stack Overflow用户
提问于 2018-03-10 19:28:35
回答 1查看 44关注 0票数 0

TypeScript允许您将参数约束为某种类型的键。

代码语言:javascript
运行
AI代码解释
复制
function foo<T>(obj: T, property: keyof T){ ... }

foo('hello world', 'length'); //Valid
foo('hello world', 'bar');    //Not Valid

我知道TypeScript中的泛型约束已经变得非常强大;有没有一种方法可以约束参数不仅是T的键,而且是T键外的任何有效表达式?

举个例子:

代码语言:javascript
运行
AI代码解释
复制
function foo<T>(obj: T, property: MythicalConstraintHere){ ... }

foo({dog: { cat: 'hello world' } }, 'dog');     //Valid
foo({dog: { cat: 'hello world' } }, 'bar');     //Not Valid
foo({dog: { cat: 'hello world' } }, 'dog.cat'); //Valid

这里的用例是能够有一个用于绑定表达式的约束。

EN

回答 1

Stack Overflow用户

发布于 2018-03-10 20:57:34

可能不完全是你想要的,但是你可以这样做:

代码语言:javascript
运行
AI代码解释
复制
function foo<T>(obj: T, property1: keyof T, property2?: keyof T[keyof T]) { 
  // ...
}

foo({dog: { cat: 'hello world' } }, 'dog');           // Valid
foo({dog: { cat: 'hello world' } }, 'dog', 'cat');    // Valid
foo({dog: { cat: 'hello world' } }, 'cat');           // Not Valid
foo({dog: { cat: 'hello world' } }, 'dog', 'pig');    // Not Valid

StackBlitz Demo (编辑器本身足以看到哪些是有效的,哪些是无效的)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49213142

复制
相关文章
Linux 中杀死指定端口的进程
这个的含义是:我们之前看到了那张图,发现 PID 在第七列,所以我们指定选择只打印第七列的数据。
wsuo
2020/07/30
14.5K0
Linux 中杀死指定端口的进程
Linux 中杀死指定端口的进程
1、netstat -nlp | grep :8083 | awk '{print $7}' 2、kill + 得到的PID
院长技术
2020/11/10
2.9K0
Windows中杀死占用某个端口的进程
最近在写Java web的项目的时候,总是会出现Tomcat端口被占用的问题,这是因为Tomcat的8080端口在启动之后代码缺陷忘记停止进程,导致后面想再次启动时可能会出现端口被占用的bug,那么怎么去解决这一bug呢?
小颜同学
2023/08/21
5630
干货:如何正确地学习数据科学中的 python
大多数有抱负的数据科学家是通过学习为开发人员开设的编程课程开始认识 python 的,他们也开始解决类似 leetcode 网站上的 python 编程难题。他们认为在开始使用 python 分析数据之前,必须熟悉编程概念。
AI研习社
2019/08/15
1.2K0
干货:如何正确地学习数据科学中的 python
Windows中杀死占用某个端口的进程[通俗易懂]
从网上找了好久,尝试之后,发现不行。开始自己尝试,终于,成功的将占用端口的进程杀掉。在此记录下过程(以8081端口为例):
全栈程序员站长
2022/09/09
2.5K0
Windows中杀死占用某个端口的进程[通俗易懂]
干货:如何正确地学习数据科学中的Python
大多数有抱负的数据科学家是通过学习为开发人员开设的编程课程开始认识 python 的,他们也开始解决类似 leetcode 网站上的 python 编程难题。他们认为在开始使用 python 分析数据之前,必须熟悉编程概念。
一墨编程学习
2019/08/07
1.5K0
干货:如何正确地学习数据科学中的Python
我的开发环境
最近在写第二个系列文章《Monkey Android》,目标定位Android初学者,因此不得不谈论一下他们很关心的开发环境的问题。在系列文章中我并没有设计这方面的讨论,原因是过多的纠结于开发环境会使学习的时间成本大大增加。
GitOPEN
2019/01/29
5950
Python 强制杀死运行中的多进程脚本
拉灯的小手
2023/06/20
5770
在不同的任务中,我应该选择哪种机器学习算法?
当开始研究数据科学时,我经常面临一个问题,那就是为我的特定问题选择最合适的算法。在本文中,我将尝试解释一些基本概念,并在不同的任务中使用不同类型的机器学习算法。在文章的最后,你将看到描述算法的主要特性的结构化概述。 首先,你应该区分机器学习任务的四种类型: 监督式学习 无监督学习 半监督学习 强化学习 监督式学习 监督式学习是指从有标签的训练数据中推断一个函数的任务。通过对标签训练集的拟合,我们希望找到最优的模型参数来预测其他对象(测试集)的未知标签。如果标签是一个实数,我们就把任务叫做“回归(regre
AiTechYun
2018/03/05
2.5K0
在不同的任务中,我应该选择哪种机器学习算法?
我的Python环境设置
网上看到一篇博文,我突然也想写一下自己正在使用的Python环境设置,以及对应的工具链。众众众所周知,Python环境管理是个很大很大的坑,坑里面有无数新人or老司机的尸体。而Python环境管理的工具又五花八门,所以可能每个人的设置都不尽相同。我列出的我使用的工具链,至少最大地满足了自己的需求,但不一定满足所有人的需求。但我自认为在Python环境管理方面颇有心得,所以有一定的参考价值。
岂不美哉Frost
2019/11/29
1.2K0
java杀死进程_linux杀死所有进程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
4.6K0
java杀死进程_linux杀死所有进程
集群环境下的定时任务
    定时任务的实现方式有多种,例如JDK自带的Timer+TimerTask方式,Spring 3.0以后的调度任务(Scheduled Task),Quartz框架等。
动力节点Java培训
2019/06/14
2.1K0
android 杀进程 方法,android中杀死进程的方法
/****************************************************
全栈程序员站长
2022/09/28
1.7K0
Linux中查看进程、杀死进程、进入进程的命令
1.查看进程     ps命令查找与进程相关的PID号:     ps a 显示现行终端机下的所有程序,包括其他用户的程序。     ps -A 显示所有程序。     ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。     ps -e 此参数的效果和指定"A"参数相同。     ps e 列出程序时,显示每个程序所使用的环境变量。     ps f 用ASCII字符显示树状结构,表达程序间的相互关系。     ps -H 显示树状结构,表示程序间的相互关系。     ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。     ps s 采用程序信号的格式显示程序状况。     ps S 列出程序时,包括已中断的子程序资料。     ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。     ps u 以用户为主的格式来显示程序状况。     ps x 显示所有程序,不以终端机来区分。     最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。     ps aux | grep program_filter_word,ps -ef |grep tomcat  ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。  2.杀死进程    使用kill命令结束进程:kill xxx    常用:kill -9 324    Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME
菲宇
2022/12/02
13.3K0
kill命令杀死所有进程_linux 杀死进程
kill方法的缺陷是,当我们有很多进程要杀死,不可能全部一个一个手动输进程号,因此能够根据进程名称中的关键字去杀进程,这样就可以批量杀死了,如下:
全栈程序员站长
2022/11/17
11.9K0
kill命令杀死所有进程_linux 杀死进程
正确地使用 Kotlin 的 internal
Kotlin 的 internal 是一个比较有用的访问控制关键字,特别是当你开发一些 SDK 给别人用时,有些类的 API 只能为 public 却又不想让外部访问到你就会发现 internal 有多么有用了 —— 只是实际情况有点儿事与愿违,internal 关键字修饰的成员在被编译成 jar 之后,Java 仍然可以无所顾忌的访问这些成员,除了名称有些奇怪。这可怎么办。小伙伴们就炸了,于是一向特立独行的冰冰给出了自己的方案。
bennyhuo
2020/02/20
3.3K0
linux中kill,pkill和killall杀死进程
杀死命令用法 的通用语法kill command是: # kill [signal or option] PID(s) 为一个kill command一种Signal Name可能: Signal Name Signal Value Behaviour SIGHUP 1 Hangup SIGKILL 9 Kill Signal SIGTERM 15 Terminate 从上面的行为显然,SIGT
入门笔记
2022/06/02
2.4K0
杀死进程
按大写O再按k再敲回车,然后使用R就可以以cpu占用量进行查看了!下面贴出top的技巧命令:
一滴水的眼泪
2020/09/24
1.6K0
[答疑]我设计的任务状态转换,不需要任务暂停这个状态
2013-05-22 16:56:50 UML菜鸟(122*****922) 这是我设计的任务状态转换,不需要任务暂停这个状态 2013-05-22 16:59:12 UML菜鸟(122*****922) 停止任务的事件直接就是把任务线程给杀了 2013-05-22 16:59:42 UML菜鸟(122*****922) 这破网,看来下午是没法问了 2013-05-22 17:44:00 潘加宇(3504847) 把状态名称前面的"任务"都去掉 2013-05-22 17:45:02 潘加宇(3504847) 线上不对,填错地方了,应该是event[guard]/action 2013-05-22 17:45:26 潘加宇(3504847) 找本UML书看看再画 2013-05-22 17:46:23 UML菜鸟(122*****922) 把任务去掉,这个确实,但是线上,我看到处都是这样 2013-05-22 17:46:34 UML菜鸟(122*****922)
用户6288414
2021/03/16
6630
[答疑]我设计的任务状态转换,不需要任务暂停这个状态
springboot中的常用任务
比如:前端请求了一些耗时任务,一时间处理不完一直转圈圈的不到响应,体验就会十分的不好。 我们需要将收到请求在处理的结果返回给前端,处理的过程开辟线程执行,不影响用户做其他操作
冷环渊
2021/11/15
6560

相似问题

芹菜在库伯奈特斯找不到雷迪斯

15

我怎样才能在库伯奈特斯获得特定部署的时间?

10

我怎样才能在库伯奈特斯看到Livy中的executor日志?

12

在库伯奈特部署周知丹

10

在库伯奈特没有发现StorageClass

34
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档