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

我只是注意到,当尝试在 TypeScript 中创建一个接口时,“ type”要么是一个关键字,要么是一个保留字。例如,在创建以下界面时,“ type”在 Visual Studio 2013中用 TypeScript 1.4显示为蓝色:

interface IExampleInterface {
type: string;
}

假设您尝试在类中实现接口,如下所示:

class ExampleClass implements IExampleInterface {
public type: string;


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

在类的第一行,当你输入(对不起)单词“ type”以实现接口所需的属性时,IntelliSense 出现,“ type”与其他关键字(如“ typeof”或“ new”)具有相同的图标。

我四处看了看,发现这个 GitHub 的问题在 TypeScript 中将“ type”列为“严格模式保留字”,但我没有找到任何关于其实际用途的进一步信息。

我怀疑我脑子有问题,这是我应该已经知道的事情,但是 TypeScript 中的“ type”保留词是用来干什么的呢?

66664 次浏览

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

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

参考资料: (编辑: 删除过期链接)字体脚本规格 v1.5(第3.9节,“字体别名”,第46及47页)

更新 : (编辑: 删除过期链接)现在在1.8规范的3.10部分,感谢@RandallFlagg 提供更新的规范和链接

更新 : (编辑: 弃用链接) 打字机手册,搜索“ Type Aliases”可以得到相应的部分。

更新 : 现在是 在这里打字脚本手册

键入关键字:

在类型脚本中,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 中有 IntelliSense)时,它会显示一些建议:

enter image description here

它显示了所有的颜色,类型疯狂源于类型颜色,“随机”源于类型随机,最后,字符串 'foo'是类型疯狂本身。