TypeScript中`is`关键字的作用及正确使用方法
大家好!我开始学习TypeScript,在示例中遇到了`is`关键字。老实说,我不太明白它的用途,以及它和普通返回类型`boolean`有什么区别。
这是我找到的一个例子:
```typescript
function isString(value: unknown): boolean {
return typeof value === "string";
}
```
但我也见过这种写法:
```typescript
function isString(value: unknown): value is string {
return typeof value === "string";
}
```
区别在哪里?我明白返回类型中的`value is string`是一种特殊构造,但不知道何时使用它。如果我只是返回`boolean`,TypeScript难道不能在检查后推断出值是字符串吗?还是不能?
我尝试写了这样的代码:
```typescript
function isString(value: unknown): boolean {
return typeof value === "string";
}
function processValue(value: unknown) {
if (isString(value)) {