当前位置: 首页 > 知识库问答 >
问题:

如何在typescript+Angular中检查变量的类型?

谭高峯
2023-03-14

你能告诉我如何在typescript+angular中检查变量的类型吗?

import { Component } from '@angular/core';

interface Abc {
  name : string
}
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular 6';
  a:Abc= {
  name:"sss"
  }

  constructor(){
    console.log(typeof this.a)
   // console.log(this.a instanceof Abc) 
  }
}

共有1个答案

苏鸿卓
2023-03-14

接口在运行时被擦除,因此在任何运行时调用中都不会有接口的踪迹。您可以使用类而不是接口(类存在于运行时并服从instanceof

class Abc {
    private noLiterals: undefined;
    constructor(public name: string) { }
}
@Component({
    selector: 'my-app',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent {
    name = 'Angular 6';
    a: Abc = new Abc( "sss")

    constructor() {
        console.log(this.a instanceof Abc) // Will be true 
    }
}

或者,您可以进行结构检查,查看abc的属性是否在运行时出现在对象中:

export class AppComponent {
    name = 'Angular 6';
    a: Abc = { name: "sss" }

    constructor() {
        console.log('name' in this.a) // Will be true 
    }
}
 类似资料:
  • 在我的JSP中,我使用JSTL设置某个变量: 然后在jQuery中,在$(文档). Ready(函数(){...})中,我需要检查“myVar”的值。 这不管用。“if”条件的计算结果总是。

  • 问题内容: 我想知道如何检查变量是否是类(不是实例!)。 我试图使用该函数来执行此操作,但我不知道类将具有哪种类型。 例如,在以下代码中 我试图用 ??? 代替“ ” ,但我意识到这是python中的关键字。 问题答案: 更好的是:使用该功能。

  • 这是在Angular中,我想使用变量来更改我的条件语句,这样我就不需要修改每个变量并再次键入这是输入标记HTML中的代码。 . . . . 所以每次有新的输入,如姓名、电子邮件、oraganize等,我的代码都会改变 我想建立一个函数,我可以传递一些字符串,让它超级好,不修改所有的时间与长线。 所以我可以用作... 拜托,我能不能这样做?或者它只对字符串有效,而不是对条件有效?

  • 我试图找到一种方法来传递一个对象来发挥作用,并在运行库中检查它的类型。这是一个伪代码: 但是总是返回,我无法找到获取或的真正类型的方法。也不起作用,返回了相同的内容。

  • 问题内容: 我有以下Java代码; 编写if条件的最佳方法是什么? 问题答案: 使用代替: 与常量进行比较避免了必须构造每个执行。 仅供参考,也有常量,为您提供方便。 注意! 您无法使用的原因是它考虑了 比例 : 因此它不适合用于纯粹的数字比较。但是,比较时不考虑规模: