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

Mic*_*ard 8 typescript

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

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

function baz(param: foo) {
}

baz("hello");
Run Code Online (Sandbox Code Playgroud)

Sar*_*ana 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
Run Code Online (Sandbox Code Playgroud)

fooType这是交叉口类型.