맨위로가기

Typeof

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

`typeof`는 프로그래밍 언어에서 변수 또는 식의 데이터 유형을 나타내는 데 사용되는 연산자 또는 키워드이다. C, C#, VB.NET, JavaScript, TypeScript 등 다양한 프로그래밍 언어에서 사용되며, 각 언어별로 사용 방법과 기능에 차이가 있다. C에서는 컴파일 시점에 변수의 타입을 결정하는 데 사용되며, C#에서는 System.Type 객체를 얻는 데, VB.NET에서는 객체 참조 변수의 데이터 형식을 비교하는 데 사용된다. JavaScript에서는 런타임에 변수의 타입을 문자열 형태로 반환하며, TypeScript에서는 변수나 객체의 타입을 가져오는 데 사용된다.

2. C 계열 언어

C, C#, 비주얼 베이직 닷넷, 자바스크립트, 타입스크립트 등 C 계열 언어에서 `typeof` 연산자는 다양한 방식으로 활용된다.

자바스크립트에서 `typeof`는 변수의 타입을 문자열 형태로 반환한다. 예를 들어, 다음 코드는 변수 `n`이 숫자인지 확인한다.

```javascript

function isNumber(n) {

return ( typeof n === 'number' );

}

```

타입스크립트에서는 `typeof`를 사용하여 기존 객체의 타입을 참조하거나, 새로운 객체의 타입을 정의할 수 있다.[9]

```typescript

function (param: typeof existingObject) { ... }

```

```typescript

let newObject: typeof existingObject;

2. 1. C

C (프로그래밍 언어)의 비표준(GNU) 확장에서는 `typeof`를 사용하여 두 변수의 최댓값을 결정하는 일반 매크로를 정의할 수 있다.

```c

#define max(a,b) ({ typeof (a) _a = (a); typeof (b) _b = (b); _a > _b ? _a : _b; })

```

C23부터 `typeof`는 C 표준의 일부이다. `typeof_unqual` 연산자도 추가되었는데, 이는 cvr-qualification 및 atomic qualification을 제거한다는 점을 제외하면 `typeof`와 동일하다.[6][7]

2. 2. C#

csharp

// 주어진 객체가 정수인지 반환합니다.

// "is" 연산자를 사용하여 이를 확인할 수도 있습니다.

public static bool IsInteger(object o)

{

return o.GetType() == typeof(int);

}

```

C#에서 `typeof` 연산자는 주어진 형식의 `System.Type` 객체를 얻는 데 사용된다. `GetType()` 메서드는 객체의 형식을, `is` 연산자는 객체가 특정 형식인지 확인하는 데 사용된다. 위 코드는 `IsInteger` 메서드에서 `o.GetType() == typeof(int)`를 통해 객체 `o`가 정수형인지 확인하는 예시를 보여준다.[9]

2. 3. 비주얼 베이직 닷넷

VB.NET에서 "typeof"의 C# 변형은 VB.NET의 '''GetType''' 메서드로 변환되어야 한다. VB.NET의 '''TypeOf''' 키워드는 객체 참조 변수를 데이터 형식과 비교하는 데 사용된다.

다음 예제에서는 '''TypeOf...Is''' 식을 사용하여 두 객체 참조 변수의 다양한 데이터 형식과의 형식 호환성을 테스트한다.

vb.net

Dim refInteger As Object = 2

MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)

MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)

Dim refForm As Object = New System.Windows.Forms.Form

MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)

MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)

MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)

MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)

3. 자바스크립트

자바스크립트에서 `typeof` 연산자는 변수의 타입을 판별하는 데 사용된다. 예를 들어, 다음 함수는 입력값이 숫자인지 확인한다.



function isNumber(n)

{

return ( typeof n === 'number' );

}



자바스크립트는 동적 타입 언어이므로, 변수의 타입은 런타임에 결정된다. `typeof` 연산자는 이러한 동적 타입 시스템에서 유용하게 활용될 수 있다.

3. 1. 타입스크립트

typescript

function (param: typeof existingObject) { ... }

```

```typescript

let newObject: typeof existingObject;

```

타입스크립트는 정적 타입 검사와 타입 추론을 제공하며, `typeof` 연산자는 이러한 기능과 함께 사용될 수 있다.[9]

참조

[1] 웹사이트 TypeOf Operator (Visual Basic) https://msdn.microso[...]
[2] 웹사이트 typeof (C#) https://msdn.microso[...]
[3] 웹사이트 Declarations - D Programming Language 1.0 http://digitalmars.c[...] 2012-12-30
[4] 문서 Typeof https://gcc.gnu.org/[...] Using the GNU Compiler Collection
[5] 웹사이트 Not-So-Magic - typeof(…) in C {{!}} r2 http://www.open-std.[...] 2021-12-02
[6] 웹사이트 N2927: Not-so-magic - typeof for C https://open-std.org[...] 2022-02-02
[7] 웹사이트 Consider renaming remove_quals https://www.open-std[...] 2022-02-06
[8] 웹사이트 Using 'typeof' to infer a type https://learntypescr[...] 2022-01-28
[9] 웹인용 Using `typeof` to infer a type https://learntypescr[...] 2022-01-28



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com