Avatar ·

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)) {