as 和 is 是 TypeScript 中两个不同的关键字,它们的用途也不同。
1、as 关键字用于类型断言,它用于告诉编译器一个值的类型,即强制把某个值当做特定类型来处理,如下所示:
const myString: any = "hello";
const lengthOfString: number = (myString as string).length;
在这个例子中,我们使用 as 关键字将 myString 声明为一个字符串类型,以便我们可以安全地使用 length 属性来获取字符串的长度。
2、is 关键字用于类型保护,它用于在运行时检查一个值是否符合某个类型,如下所示:
function isString(value: any): value is string {
return typeof value === "string";
}
function logIfString(value: any) {
if (isString(value)) {
console.log(value);
}
}
在这个例子中,我们定义了一个 isString 函数来检查一个值是否为字符串类型,如果是字符串类型,它会返回 true。然后我们在 logIfString 函数中使用 isString 函数来检查传入的参数是否为字符串类型,如果是,我们就打印这个字符串。
在这个例子中,使用 is 关键字可以帮助我们编写更健壮的代码,避免了在运行时出现类型错误的可能性。