中不起作用的单独函数中进行类型检查"/>
在打字稿中不起作用的单独函数中进行类型检查
我在单独的函数中验证参数类型,但它仍然给出以下错误-
Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'.
代码是这样的-
function paramValidator(param?: string){
if(param===undefined){
throw new Error('parameter missing');
}
}
function xyz(a: string){
console.log(a);
}
function abc(a?: string){
try{
paramValidator(a);
// Working Fine
// if(a===undefined){
// throw new Error('parameter missing');
// }
xyz(a); //This line is throwing error
}
catch(e){
console.log('Error');
}
}
我想将验证逻辑放在一个单独的函数中以获得更清晰的代码。如何强制在验证后定义参数?
回答如下:如果您使用的是 Typescript 3.7+,请使用断言函数。变化很小;您只需在方法签名中添加一个
asserts
条件:
function paramValidator(param?: string): asserts params is string {
调用此函数后的任何时候,Typescript 都会识别出 param 的值应该是
string
,并且不会出现错误。
游乐场链接
更多推荐
在打字稿中不起作用的单独函数中进行类型检查
发布评论