输入打字稿

时间:2016-06-10 09:00:35

标签: typescript

我有一个名为param的参数函数,如下所示:

function x(param: One | Two) {
    //do something
}

interface One {
    value: IValue,
    name: string,
    id: number
}
interface Two {
    value: IValue2,
    name: string,
    id: number,
    selected: boolean
}

我可以使用相同的参数,两个不同的接口吗?谢谢!

1 个答案:

答案 0 :(得分:4)

您可以,并且您的参数语法正确!作为参考,TypeScript将其称为union type

使用它们的主要警告是,您只能访问所有类型的公共成员 - 例如,您的界面都包含namevalueid,因此您能够在你的功能中使用这些。但是,只有interfaceTwoselected成员,因此无法使用。

顺便说一句,我不知道这个示例是否是你刚刚输入的内容,所以你可能已经知道这一点,但你的接口没有正确定义 - 你需要使用{{ 1}}关键字并以分号结束行。它也是一种给出interface类型名称的惯例:

TitleCase