تایپاسکریپت نوعی که هیچ ویژگی ندارد را از پذیرفتن رشتهها یا آرایهها محدود میکند


آیا ممکن است محدود کنیم که param رشتهها، آرایهها و غیره را نپذیرد؟

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

function baz(param: foo) {
}

baz("hello");

پاسخ شماره ۱

شما میتوانید کاری مانند این انجام دهید تا 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 در اینجا یک نوع تقاطع است.