【问题标题】:typescript optional parameter check before using打字稿可选参数使用前检查
【发布时间】:2020-12-16 16:14:45
【问题描述】:

tsc 是否会通过一些 tscconfig 规则对这样的代码给出错误?

function buildName(firstName: string, lastName?: string) {
  return firstName + " " + lastName;
}

我认为如果没有代码检查lastName是否未定义,则必须有tsc编译错误。 如何让 tsc 在编译时出错。

【问题讨论】:

    标签: typescript optional-parameters tsc


    【解决方案1】:

    与包含undefined的变量串联很奇怪,但JS不禁止,所以不会抛出TS错误。

    但通常这不是您想要的,并且表明存在问题。 restrict-plus-operands TSLint or ESLint 规则禁止这样做:

    【讨论】:

    • 问题不仅仅是“连接”。问题是使用可选参数而不检查它是否未定义
    • 除了+ 之外,你是如何使用它的? TS 已经不允许尝试使用它要求它不是未定义的。例如,console.log(lastName.slice(0, 3)); 是不允许的,因为它可能未定义。
    • 嗯,看来你是对的。加号运算符进行强制,因此它接受未定义的值,例如 console.log(lastName)。否则它就像我预期的那样工作;谢谢你的回答。
    猜你喜欢
    • 2020-05-22
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2020-03-17
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多