Как понять пересечение TypeScript через keyof ⇐ Javascript
-
Гость
Как понять пересечение TypeScript через keyof
интерфейс Человек { имя: строка; } Срок службы интерфейса { Дата рождения; Дата смерти; } введите PersonSpan = Человек и продолжительность жизни; тип K = ключ PersonSpan; // тип K = "имя" | "рождение" | "смерть" let prop: K = "имя"; // хорошо let obj: PersonSpan = { // ошибка компиляции, отсутствуют свойства рождения и смерти имя: «Джон Смит» } если я хочу понять пересечение типов через keyof:
ключом этого экземпляра объекта{ name: "John Smith" является name, который соответствует keyof PersonSpan, который равен "имя" | "рождение" | "смерть", допустимо сделать let prop: "name" | "рождение" | «смерть» = «имя»; Поэтому, пока у объекта есть одно из этих трех свойств, оно должно быть действительным, почему у него все равно должны быть все свойства, которые можно назначать PersonSpan?
интерфейс Человек { имя: строка; } Срок службы интерфейса { Дата рождения; Дата смерти; } введите PersonSpan = Человек и продолжительность жизни; тип K = ключ PersonSpan; // тип K = "имя" | "рождение" | "смерть" let prop: K = "имя"; // хорошо let obj: PersonSpan = { // ошибка компиляции, отсутствуют свойства рождения и смерти имя: «Джон Смит» } если я хочу понять пересечение типов через keyof:
ключом этого экземпляра объекта{ name: "John Smith" является name, который соответствует keyof PersonSpan, который равен "имя" | "рождение" | "смерть", допустимо сделать let prop: "name" | "рождение" | «смерть» = «имя»; Поэтому, пока у объекта есть одно из этих трех свойств, оно должно быть действительным, почему у него все равно должны быть все свойства, которые можно назначать PersonSpan?
Мобильная версия