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

编程入门 行业动态 更新时间:2024-10-05 11:20:09

在打字稿<a href=https://www.elefans.com/category/jswz/34/1771233.html style=中不起作用的单独函数中进行类型检查"/>

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

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

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

游乐场链接

更多推荐

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

本文发布于:2024-05-31 01:22:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771127.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:中不   函数   类型

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!