shi*_*atk 1 javascript typescript typescript-typings
下面有什么区别?我有时会is在打字稿中看到关键字,但无法弄清楚arg is string在这种情况下使用的好处。查了一下,但没有太多相关信息。有人能解释一下吗?
const isString = (arg: any): arg is string => typeof arg === "string";
const isString = (arg: any) => typeof arg === "string";
Run Code Online (Sandbox Code Playgroud)
那是一个用户定义的类型 guard。这意味着在调用isStringTypeScript 时知道将类型缩小到string是否返回true.
一个例子:
declare const foo: string | number;
if (isString(foo)) {
console.log(foo.toLowerCase());
}
Run Code Online (Sandbox Code Playgroud)
如果函数没有定义自定义类型保护,则 if 块内的类型仍然是string | number,调用toLowerCase()会产生错误。
使用类型保护,编译器将类型缩小到stringif 块内。
| 归档时间: |
|
| 查看次数: |
1223 次 |
| 最近记录: |