דער 'באַפרידיקן'-אָפּעראַטאָר אין TypeScript

וואַלאַדייט אַז דער טיפּ פון אַן אויסדרוק שוועבעלעך צו עטלעכע טיפּ, אָן טשאַנגינג די ריזאַלטינג טיפּ פון דעם אויסדרוק

TypeScript 4.9 סאַטיספייז

מיט ווערסיע 4.9, TypeScript ינטראַדוסיז אַ נייַע אָפּעראַטאָר גערופן די "סאַטיספיעס"-אָפּעראַטאָר. דער ציל איז צו מאַכן ניט-כאָומאַדזשאַנאַס טיפּ שטעלט מער פלעקסאַבאַל דורך אַלאַוינג אַ פאַרבאַנד פון טייפּס צו באַפרידיקן די קוילעלדיק טיפּ.

פאַרריכטן טיפּ טעות מיט רעקאָרד <>

דער בעסטער ביישפּיל צו באַווייַזן דעם נייַ אָפּעראַטאָר ניצט אַ "רעקאָרד"-טיפּ, ווו די טייפּס פון די וואַלועס קענען זיין אַנדערש.

type Keys = "alpha" | "beta" | "gamma";

const variants = {
  alpha: 0,
  beta: 1,
  gamma: "three"
} satisfies Record<Keys, string | number>;

// With the new 'satisfies'-operator,
// the types for each of the properties
// is correctly inferred.
const otherBeta = variants.beta + 10;
const gammeUppercase = variants.gamma.toUpperCase();

ווי איר קענען זען, די נייַע קאָד אַלאַוז די ריכטיק טיפּ פֿאַר די געגעבן שליסל. דאָס וואָלט נישט זיין מעגלעך איידער TypeScript 4.9. דער קאַמפּיילער וואָלט באַקלאָגנ זיך אַז די ווערט קען זיין פון טיפּ שטריקל אָדער נומער, כוועראַז איצט דער קאַמפּיילער ריכטיק ינפערז די ספּעציפיש טיפּ.

פאַרמאָג נאָמען קאַנסטריינינג

מיר קענען אויך נוצן די נייַע אָפּעראַטאָר צו אָנווייַזן דעם קאַמפּיילער אַז עס איז אָוקיי פֿאַר אַ סכום צו בלויז אַרייַננעמען עטלעכע געגעבן שליסלען, אָבער נישט אָננעמען קיין אנדערע.

type Keys = "alpha" | "beta" | "gamma";

const variants = {
    alpha: "value",
    beta: 0,
    // The compiler will show an error,
    // as 'delta' is not part of the keys.
    delta: new Date()
} satisfies Partial<Record<Keys, unknown>>;

מער ביישפילן

פֿאַר אַ פולשטענדיק רשימה פון ביישפילן מיט טיף דיסקריפּשאַנז, איך רעקאָמענדירן דעם אָריגינעל אַרויסגעבן פון דעם שטריך אויף Github, ווו דער מחבר באשרייבט פילע נוצן קאַסעס (לינק אויך אין דעם אַדענדום).

פֿאָרשלאָגן

פֿאַרבונדענע

נאָך-וואָרט

שפּראַכן