例如,假设我想接受一个特定类型的数组(比如User
)或数组的数组 Users
作为参数。
换句话说,我想做这样的事情:
interface arrayTypeOne {...}
interface arrayTypeTwo {...}
export class MyClass {
myMethod(args:MustBeOneOrTwo) {
}
}
灵活性对API的消费者很有价值,因此我认为将其分解为两种方法并不是一个好主意。另一方面,我真的想声明一种比all
更具体的类型。
想法?
答案 0 :(得分:3)
最新版本的Typescript引入了 union types 的概念,您可以在其中指定参数/变量是类型列表之一。
在你的例子中,你会这样做:
interface arrayTypeOne {...}
interface arrayTypeTwo {...}
export class MyClass {
myMethod(args: arrayTypeOne | arrayTypeTwo) {
}
}