我刚刚注意到在尝试使用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中的“类型”保留字是什么?
答案 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 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
中包含类型random
和color
。
然后,当我们尝试将字符串文字转换为我们的字符串(并且在IDE中具有智能功能)时,它会显示建议:
它显示了所有疯狂的颜色,疯狂的颜色来自具有颜色的颜色,'random'(随机)来自于random类型,最后是字符串'foo'
,位于疯狂的类型本身上。