TypeScript中的“类型”保留字是什么?

时间:2015-07-12 05:32:22

标签: typescript keyword reserved-words

我刚刚注意到在尝试使用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会显示“type”,其图标与“typeof”等其他关键字相同或“新”。

我已经浏览了一下,并且可以找到这个GitHub issue在TypeScript中将“type”列为“严格模式保留字”,但是我还没有找到任何关于其目的实际是什么的进一步信息

我怀疑我有一个大脑放屁,这是我应该已经知道的明显的东西,但是TypeScript中的“类型”保留字是什么?

2 个答案:

答案 0 :(得分:82)

它用于“类型别名”。例如:

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

参考:TypeScript Specification v1.5(第3.9节,“类型别名”,第46页和第47页)

更新Now on section 3.10 of the 1.8 spec。感谢@RandallFlagg获取更新的规范和链接

更新TypeScript Handbook,搜索“类型别名”可以转到相应的部分。

答案 1 :(得分:8)

打字稿中的Type关键字:

在打字稿中,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;

您可以组成标量类型的类型(stringnumber等),也可以组成诸如1'mystring'之类的文字值。您甚至可以组成其他用户定义类型的类型。例如,类型madness中包含类型randomcolor

然后,当我们尝试将字符串文字转换为我们的字符串(并且在IDE中具有智能功能)时,它会显示建议:

enter image description here

它显示了所有疯狂的颜色,疯狂的颜色来自具有颜色的颜色,'random'(随机)来自于random类型,最后是字符串'foo',位于疯狂的类型本身上。