【问题标题】:Suppress unused variable error for destructured arrays抑制解构数组的未使用变量错误
【发布时间】:2019-04-24 12:31:20
【问题描述】:

我正在解构正则表达式匹配的结果

function getStuffIWant(str: string): string {
    const [
        fullMatch,   // [ts] 'fullMatch' is declared but its value is never read.
        stuffIWant,
    ] = str.match(/1(.*)2/);

    return stuffIWant;
}

getStuffIWant("abc1def2ghi");

正如评论所指出的,fullMatch 从未使用过,TSC 想让我知道。 有没有办法在不全面关闭未使用检查的情况下抑制此错误?

我也尝试将数组解包为对象:

const {
    1: stuffIWant, // Unexpected SyntaxError: Unexpected token :
} = str.match(/1(.*)2/);

【问题讨论】:

    标签: typescript destructuring


    【解决方案1】:

    几乎立即找到答案(并非总是如此) - 解构数组时,您可以 ignore select values 通过在以下位置添加一个额外的逗号:

    function getStuffIWant(str: string): string {
        const [
            , // full match
            stuffIWant,
        ] = str.match(/1(.*)2/);
    
        return stuffIWant;
    }
    
    getStuffIWant("abc1def2ghi");
    

    没有声明任何变量,TypeScript 没有什么可以全力以赴的。

    【讨论】:

      【解决方案2】:

      TypeScript 4.2 的替代语法:

      function getStuffIWant(str: string): string {
        const [
            _fullMatch,
            stuffIWant,
        ] = str.match(/1(.*)2/);
      
        return stuffIWant;
      }
      
      getStuffIWant("abc1def2ghi");
      

      https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-2.html#destructured-variables-can-be-explicitly-marked-as-unused

      注意str.match也可以返回null,所以问题中的示例由于ts(2461)导致额外的编译错误

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-27
        • 2015-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多