사용자 도구

사이트 도구


typescript:datatype

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
typescript:datatype [2018/08/03 14:59] – [Data Type] taekgutypescript:datatype [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ===== TypeScript Data Type ===== ===== TypeScript Data Type =====
  
 +** TypeScript는 data type을 체크합니다. **
 +아래의 코드는 에러입니다.
 +<code javascript>
 +let myColorStr: string = Color.Green;
 +</code>
 ==== boolean ==== ==== boolean ====
     * boolean : primitive data type     * boolean : primitive data type
줄 29: 줄 34:
 ==== any ==== ==== any ====
     * 어떠한 data type도 될 수 있다.(당연히 사용하지 않는 것이 좋습니다.)     * 어떠한 data type도 될 수 있다.(당연히 사용하지 않는 것이 좋습니다.)
 +
 +==== unknown ====
 +''any'' 타입은 타입스크립트에서 가장 할 수 있는 일이 많은(most-capable) 타입입니다. 어떤 타입이든 수용할 수 있으면서도 우리가 호출하거나 그 속성에 접근하려고 할 때 타입체킹을 하지 않아도 됩니다. 또한 ''any'' 타입의 값은 다른 어떤 타입에도 대입할 수 있습니다.
 +보통은 이런 점이 매우 유용하지만 어떤 때는 이런 점 때문에 우리는 약간 태만해지기도 합니다.
 +
 +어떤 때는 가장 할 수 있는 일이 없는(least-capable) 타입을 사용하고 싶을 때도 있습니다. 이는 API에서 이런 신호를 주고 싶을 때 유용합니다. “이것은 어떤 값이든 될 수 있으니 사용 전에 어떤 타입인지 확인하십시오" 이렇게 하면 사용자들은 반환된 값을 안전하게 검사해보게 됩니다.
 +
 +타입스크립트 3.0에서는 위에서 언급한 일들을 해주는 ''unknown''이라는 새로운 타입이 도입됩니다. ''any''와 마찬가지로 어떤 값이든 ''unknown''에 할당될 수 있습니다. 하지만 ''any''와는 다르게 ''unknown'' 타입을 가진 값의 속성에는 접근할 수 없으며 호출하거나 인스턴스(instance)를 만들 수도 없습니다. 또한 ''unknown'' 타입의 값은 ''unknown''이나 ''any''에만 할당될 수 있습니다.
 +
 +대신에 우리는 타입체킹을 수행하거나 타입 시스템에게 우리가 이 타입에 대해 더 잘 알고 있다고 말해줘야 합니다.
 +
 +<Code typescript>
 +let foo: unknown = 10;
 +function hasXYZ(obj: any): obj is { x: any, y: any, z: any } {
 +    return !!obj &&
 +        typeof obj === "object" &&
 +        "x" in obj &&
 +        "y" in obj &&
 +        "z" in obj;
 +}
 +// Using a user-defined type guard...
 +if (hasXYZ(foo)) {
 +    // ...we're allowed to access certain properties again.
 +    foo.x.prop;
 +    foo.y.prop;
 +    foo.z.prop;
 +}
 +// We can also just convince TypeScript we know what we're doing
 +// by using a type assertion.
 +upperCase(foo as string);
 +function upperCase(x: string) {
 +    return x.toUpperCase();
 +}
 +</Code>
 +
 ==== void ==== ==== void ====
     * function에서 사용 합니다.     * function에서 사용 합니다.
줄 77: 줄 117:
  
 console.log((<number>myVar).toFixed());  // runtime error console.log((<number>myVar).toFixed());  // runtime error
-</code> 
-==== TypeScript는 data type을 체크 ==== 
-아래의 코드는 에러입니다. 
-<code javascript> 
-let myColorStr: string = Color.Green; 
 </code> </code>
typescript/datatype.1533308370.txt.gz · 마지막으로 수정됨: 2025/04/15 10:05 (바깥 편집)