[typescript] TypeScript에서 “type”예약어는 무엇입니까?

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 StringOrNumber = string | number;
type DictionaryOfStringAndPerson = Dictionary<string, Person>;

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

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

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


답변

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

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'유형 광기 자체에있는 문자열 을 표시합니다.


답변