Lud*_*igH 10 types typescript arrow-functions
function isFish(pet: Fish | Bird): pet is Fish {
return (<Fish>pet).swim !== undefined;
}
Run Code Online (Sandbox Code Playgroud)
箭头函数是否有相应的语法?
Jam*_*nne 10
TypeScript 支持箭头函数类型保护(2017 年可能并非如此)。以下现在按预期工作。我在生产代码中经常使用这种风格:
const isFish = (pet: Fish | Bird): pet is Fish =>
(pet as Fish).swim !== undefined;
Run Code Online (Sandbox Code Playgroud)
使用类型断言而不是类型声明:
const isFish = (pet => !!pet.swim) as (pet) => pet is Fish
Run Code Online (Sandbox Code Playgroud)
然而,考虑到它更冗长,我更喜欢将类型保护编写为普通函数,除非您确实需要绑定this,但这可能是代码味道。
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |