typeof 类型保护
typeof
类型保护用于判断变量是哪种原始类型。
1 | function fn(param: string | number) { |
同理还有 instance 保护。
自定义类型保护 is
typeof
和 instanceof
类型保护能够满足一般场景,对于一些更加特殊的,可以通过自定义类型保护来对应类型,比如我们自己定义一个请求参数的接口类型。
1 | interface RequestParams { |
这里面通过判断,我们需要手动告诉编译器通过 isValidRequestParams
的判断以后则 request
就是 RequestParams
类型的参数,编译器通过类型谓词 parameterName is Type
得知,isValidRequestParams
返回了 true
则 request
就是 RequestParams
类型。
参考资料:
https://tsejx.github.io/typescript-guidebook/syntax/advanced/type-guards