是否可以在Typescript中实现两个签名中的一个
Is it possible to implement one of two signatures in Typescript?
例如,假设我想接受特定类型的数组(如User
)或Users
的数组的数组作为参数。
换句话说,我想做这样的事情:
interface arrayTypeOne {...}
interface arrayTypeTwo {...}
export class MyClass {
myMethod(args:MustBeOneOrTwo) {
}
}
这种灵活性对于API的消费者来说是很有价值的,所以我认为把它分成两种方法不是一个好主意。另一方面,我真的很想声明一个比all
更具体的类型。
想法?
Typescript的最新版本引入了并集类型的概念,您可以在其中指定参数/变量是类型列表中的一个。
在你的例子中,你会做:
interface arrayTypeOne {...}
interface arrayTypeTwo {...}
export class MyClass {
myMethod(args: arrayTypeOne | arrayTypeTwo) {
}
}
相关文章:
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 一个ajax循环有两个输出错误innerHTML
- 将两个Json提要合并为一个,并按时间排序
- 为什么jQuery文件的函数中有两个参数,但只接收一个参数
- 使用javascript将两个文本框值相加到表中的另一个文本框中
- 当两个单独的单词被放在目标上时,使用Jquery获取一个值
- 为两个ID设置一个变量的正确语法
- webgl在一个正方形上操纵两个纹理
- 一个jsp中有两个操作URL
- javascript测试是否存在两个标志中的任何一个
- Jquery:当两个或多个条件为true时,选择一个元素
- 使用一个表达式将两个变量分配给相同的值
- react-让一个元素返回两个相邻的<tr>标签
- 同一事物的两个函数,一个崩溃,另一个不崩溃,为什么
- 检查来自不同数组的两个元素的一个属性是否相等
- 保存两个模型(属于第三个模型)和一个提交
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- 将两个express应用程序封装在一个应用程序中
- 一个Web应用程序上有两个Java脚本