prosource

스크립트 + 스크립트에서 변수의 유형을 확인하는 방법은 무엇입니까?

probook 2023. 6. 7. 22:59
반응형

스크립트 + 스크립트에서 변수의 유형을 확인하는 방법은 무엇입니까?

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) 
  }
}

그것은 주어야 합니다.true그리고.false

https://stackblitz.com/edit/angular-jfargi?file=src/app/app.component.ts

인터페이스는 런타임에 지워지므로 런타임 호출에서 인터페이스의 추적이 없습니다.인터페이스 대신 클래스를 사용할 수 있습니다(클래스는 런타임에 존재하고 준수함).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 
    }
}

그냥 쓰기typeof(variable);그래서 당신의 경우:

console.log(typeof(this.a));

'instance of' 또는 'is'를 사용해 보십시오.

a instanceof Abc;

참고 항목:유형 스크립트로 클래스 유형 확인

기본 유형(문자열, 숫자 등)의 경우 다음과 같이 확인할 수 있습니다.

if( typeof(your_variable) === 'string' ) { ... }

인터페이스컴파일 시에만 존재하며 컴파일 후에는 제거되므로 런타임에 코드가 의미가 없습니다.그렇게 노력하면 그것은 항상 돌아올 것입니다.false.

여기 보세요.

constructor(){
    console.log(typeof(this.a), '---');
    console.log(this.instanceOfA(this.a)); 
  }

  instanceOfA(object: any): object is ABc {
    return 'member' in object;
  }

작업 예제

자세한 내용은 여기를 참조하십시오.

이것을 먹어보세요.

  console.log(typeof (this.specialProviderSelected));

우리는 문자열, 숫자, 객체 등과 같은 변수의 유형을 확인할 수 있습니다.

  if((typeof (this.specialProviderSelected)) === 'string') {
     action here...
    }
   if((typeof (this.specialProviderSelected))  === 'number') {
     action here...
    }
    if((typeof (this.specialProviderSelected))  === 'object') {
     action here...
    }

언급URL : https://stackoverflow.com/questions/51190383/how-to-check-type-of-variable-in-typescript-angular

반응형