关键词:is 谓词语法、is 语法作用
在 TypeScript 中,is
是一种类型谓词(type predicate)语法。它用于在运行时对一个值的类型进行检查,并返回一个布尔值。
is
通常与条件类型和类型保护(type guards)一起使用。条件类型可以基于类型谓词 is
的结果来进行类型细化,从而在编译时获取更准确的类型推断。
以下是一个示例,展示了如何使用 is
进行类型谓词检查:
function isString(value: unknown): value is string {
return typeof value === 'string';
}
function processValue(value: unknown): void {
if (isString(value)) {
console.log(value.toUpperCase());
} else {
console.log('Value is not a string.');
}
}
processValue('hello'); // 输出: HELLO
processValue(42); // 输出: Value is not a string.
在上述示例中,我们定义了一个 isString
函数,它接受一个 unknown
类型的值,并使用 typeof
运算符检查该值是否为字符串类型。函数返回一个布尔值,指示值是否为字符串类型。
然后,我们定义了一个 processValue
函数,它接受一个 unknown
类型的值,并通过调用 isString
函数进行类型谓词检查。如果值是字符串类型,就将其转换为大写并打印出来;否则,打印出值不是字符串类型的消息。
最后,我们调用 processValue
函数两次,一次传入字符串 'hello'
,一次传入数值 42
。第一次调用输出 HELLO
,表示字符串类型的值通过了类型谓词检查;第二次调用输出 Value is not a string.
,表示数值类型的值未通过类型谓词检查。
因此,is
是 TypeScript 中用于类型谓词检查的关键字,用于在运行时对一个值的类型进行判断,并返回一个布尔值。