Typescript限制类型,没有接受字符串或数组的属性

时间:2017-03-03 16:21:08

标签: typescript

是否可以限制param不接受字符串,数组等?

interface foo {
    a?: number;
    b?: string;
}

function baz(param: foo) {
}

baz("hello");

1 个答案:

答案 0 :(得分:5)

您可以执行以下操作,使baz至少接受一个对象:

interface foo {
    a?: number;
    b?: string;
}

interface notAnArray {
    forEach?: void
}

type fooType = foo & object & notAnArray;

function baz(param: fooType) {
}

baz("hello"); // Throws error
baz([]); // Throws error

fooType这里是Intersection Type