我知道如何使用它,但我在文档中找不到任何解释。我想要一个准确的定义,以便我能更好地理解它。
编辑:我的意思是in
在映射类型中使用,而不是js运算符。
答案 0 :(得分:6)
这是标准的in
Javsacript运算符。您可以阅读更多文档here,但简短的故事是
如果指定的属性在指定的对象中,则in运算符返回true。语法是:
propNameOrNumber in objectName
其中
propNameOrNumber
是表示属性名称或数组索引的字符串或数字表达式,objectName
是对象的名称。
在Typescript中,in
运算符也充当了here所述的类型保护程序
interface A {
x: number;
}
interface B {
y: string;
}
let q: A | B = ...;
if ('x' in q) {
// q: A
} else {
// q: B
}
修改强>
typescript中in
的另一种含义是映射类型定义。您可以在handbook或pull request中了解相关信息。 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; }