最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在打字稿中不起作用的单独函数中进行类型检查

网站源码admin30浏览0评论

在打字稿中不起作用的单独函数中进行类型检查

在打字稿中不起作用的单独函数中进行类型检查

我在单独的函数中验证参数类型,但它仍然给出以下错误-

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
,并且不会出现错误。

游乐场链接

发布评论

评论列表(0)

  1. 暂无评论