TypeScript 的?操作符作用
时间: 2023-07-24 10:24:59 浏览: 93
TypeScript
5星 · 资源好评率100%
TypeScript 的 `?` 操作符可以用于定义可选属性或方法参数。它表示该属性或参数是可选的,可以不传入值或者传入 undefined。这可以让我们更灵活地定义对象或函数,允许省略某些不是必需的属性或参数,从而方便代码编写和使用。
例如,下面是一个使用 `?` 操作符定义可选属性的示例:
```typescript
interface Person {
name: string;
age?: number;
}
const person1: Person = { name: 'Alice' };
const person2: Person = { name: 'Bob', age: 30 };
```
在上面的代码中,我们定义了一个 `Person` 接口,它包含了一个必需的 `name` 属性和一个可选的 `age` 属性。我们可以创建一个只包含 `name` 属性的 `person1` 对象,也可以创建一个包含 `name` 和 `age` 属性的 `person2` 对象。
另外,`?` 操作符也可以用于定义可选的函数参数。例如:
```typescript
function greet(name: string, age?: number) {
if (age) {
console.log(`Hello, ${name}, you are ${age} years old.`);
} else {
console.log(`Hello, ${name}.`);
}
}
greet('Alice'); // Hello, Alice.
greet('Bob', 30); // Hello, Bob, you are 30 years old.
```
在上面的代码中,我们定义了一个 `greet` 函数,它包含了一个必需的 `name` 参数和一个可选的 `age` 参数。如果传入了 `age` 参数,则输出包含年龄信息的问候语,否则只输出简单的问候语。当我们调用 `greet` 函数时,可以只传入必需的 `name` 参数,也可以同时传入可选的 `age` 参数,这取决于我们的实际需求。
总之,`?` 操作符可以让我们更灵活地定义属性和参数,使代码更加易读和易用。
阅读全文