Это стандартный in
оператор Javsacript. Вы можете прочитать больше документации здесь , но краткий рассказ
Оператор in возвращает true, если указанное свойство находится в указанном объекте. Синтаксис:
propNameOrNumber in objectName
где propNameOrNumber
- строковое или числовое выражение, представляющее имя свойства или индекс массива, а objectName
- имя объекта.
В Typescript оператор in
также действует как охрана типов, как описано здесь
interface A {
x: number;
}
interface B {
y: string;
}
let q: A | B = ...;
if ('x' in q) {
// q: A
} else {
// q: B
}
Редактировать
Альтернативное значение in
в машинописи - в определении сопоставленного типа. Вы можете прочитать о них в справочнике или в запросе . Ключевое слово in
используется там как часть синтаксиса для перебора всех элементов в объединении ключей.
interface Person {
name: string;
age: number;
}
type Partial<T> = {
[P in keyof T]?: T[P]; // P will be each key of T
}
type PersonPartial = Partial<Person>; // same as { name?: string; age?: number; }