【问题标题】:Typescript typeguard for any[] function parameter任何 [] 函数参数的打字稿类型保护
【发布时间】:2020-05-11 23:27:55
【问题描述】:

想知道让这个类型保护实例对这样的函数进行检查是否有意义:

Foo(value: any[]) {
    if (value instanceof Array) {
        Console.log('having an 
        array')
    } 
}

由于参数已被声明为 any 的数组,这是否自动暗示运行时值应始终是数组的实例?

这是一个具体的案例,其中涉及到任何类型并且需要类型保护?

我的意思是:指定参数的类型是否确保运行时该参数在开发人员工具中显示为该类型?在这种情况下,该类型的实例表示无用的检查..

【问题讨论】:

  • 1.是的。 2. 我不确定我是否理解这个问题。
  • 嗨,我已经编辑了这个问题,希望现在更容易理解..
  • 不,这些类型只在编译时使用。运行时没有 TS。

标签: angular typescript typeguards


【解决方案1】:

您在 Foo() 中的 if 条件没有意义,因为在开发编译器时,如果数组未作为参数传递给方法,则会引发错误。

类型保护仅在编译时才重要,因为您在 javascript 中转译的代码会发送到浏览器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-25
    • 2019-03-20
    • 2017-05-18
    • 2022-01-12
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多