TypeScript에서 "type"예약어는 무엇입니까?


106

TypeScript에서 인터페이스를 만들려고 할 때 "type"이 키워드이거나 예약어라는 것을 알았습니다. 예를 들어 다음 인터페이스를 만들 때 "type"은 TypeScript 1.4가있는 Visual Studio 2013에서 파란색으로 표시됩니다.

interface IExampleInterface {
    type: string;
}

다음과 같이 클래스에서 인터페이스를 구현하려고한다고 가정 해 보겠습니다.

class ExampleClass implements IExampleInterface {
    public type: string;

    constructor() {
        this.type = "Example";
    }
}

클래스의 첫 번째 줄에서 인터페이스에 필요한 속성을 구현하기 위해 "type"이라는 단어를 입력하면 IntelliSense가 "typeof"또는 "new ".

나는 둘러 보았고 TypeScript에서 "type"을 "strict mode reserved word"로 나열하는 이 GitHub 문제 를 찾을 수 있었지만 그 목적이 실제로 무엇인지에 대한 추가 정보를 찾지 못했습니다.

나는 내가 뇌 방귀를 앓고 있다고 의심하고 이것은 내가 이미 알아야 할 명백한 것이지만 TypeScript에서 "type"예약어는 무엇입니까?


Type Alias당신의 유형 의미 론적 이름을 제공합니다 : basarat.gitbooks.io/typescript/content/docs/types/...
basarat

답변:


130

"유형 별칭"에 사용됩니다. 예를 들면 :

type StringOrNumber = string | number;
type DictionaryOfStringAndPerson = Dictionary<string, Person>;

참조 : TypeScript 사양 v1.5 (섹션 3.9, "유형 별칭", 46 및 47 페이지)

업데이트 : 이제 1.8 사양의 섹션 3.10에 있습니다. 업데이트 된 사양 및 링크에 대해 @RandallFlagg에게 감사드립니다.

업데이트 : TypeScript Handbook , "Type Aliases"를 검색하면 해당 섹션으로 이동할 수 있습니다.


26
네, 분명한 것입니다. 프로그래밍 언어의 맥락에서 "type"이라는 단어를 검색 할 때 찾고있는 내용을 찾기가 매우 어렵습니다. 특히 해당 언어가 "TypeScript"인 경우에는 더욱 그렇습니다. 그건 그렇고, 일반 사전은 여전히 ​​TypeScript에 존재하지 않습니까?
아담 굿윈

1
여기에 하나 (위 TS 0.9 용)을 필요로하는 경우 :
JCL

고마워요, 사전에 사전을 원할 때 그 프로젝트를 한 번 본 것 같았는데, 결국에는 그냥하기로 결정했습니다.
아담 굿윈

개념이 확인 캘리포니아 형식 정의에서 온 studytonight.com/c/typedef.php
Pranoy 사카

33

타이프 스크립트에 키워드 입력 :

typescript에서 type 키워드는 유형에 대한 별칭을 정의합니다. type 키워드를 사용하여 사용자 정의 유형을 정의 할 수도 있습니다. 이것은 예를 통해 가장 잘 설명됩니다.

type Age = number | string;    // pipe means number OR string
type color = "blue" | "red" | "yellow" | "purple";
type random = 1 | 2 | 'random' | boolean;

// random and color refer to user defined types, so type madness can contain anything which
// within these types + the number value 3 and string value 'foo'
type madness = random | 3 | 'foo' | color;  

type error = Error | null;
type callBack = (err: error, res: color) => random;

당신은 스칼라 유형 (유형 작성할 수 있습니다 string, number같은 리터럴 값의도 등), 그러나 1'mystring'. 다른 사용자 정의 유형의 유형을 작성할 수도 있습니다. 예를 들어 유형 madness에는 유형 randomcolor 그 안에 있습니다.

그런 다음 문자열을 리터럴로 만들려고하면 (그리고 IDE에 IntelliSense가 있음) 제안 사항이 표시됩니다.

여기에 이미지 설명 입력

유형 색상에서 파생 된 유형 광기의 모든 색상, 랜덤 유형에서 파생 된 '랜덤', 마지막으로 'foo'유형 광기 자체에있는 문자열 을 표시합니다.


1
사용자 정의 유형과 열거 형의 차이점은 무엇입니까
ORcoder

1
@ORcoder 좋은 질문입니다! 나도 알고 싶다. 우리가 이해할 수있는 좋은 설명입니다!
Merv

type color = "blue" | "red" | "yellow" | "purple";클래스 내부 또는 외부에서 선언문을 어디에서 선언 했습니까?
더 그랜드 Kushwah

이것은 사용자 정의 유형과 열거 형 간의 차이와 관련하여 도움이 될 수 있습니다
Christophe Fuzier
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.