//枚举类型 对JavaScript标准数据类型的一个补充 你也可以手动的指定成员的数值 枚举类型提供的一个便利是你可以由枚举的值得到它的名字。
//例如,我们知道数值为2,但是不确定它映射到Color里的哪个名字,我们可以查找相应的名字:
enum x{
up=1,
down,
left,
right
}
let where = x.down;
let where2=x[2];
//any类型 任意值类型 可以为还不清楚类型的变量指定一个类型
let a:any='5454'
a=555
a=[1,2,3];
//void ;类型 两个值undefined null
//某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是void:
let not:void=undefined;
let not2:void=null;
//Null 和 Undefined类型
//TypeScript里,undefined和null两者各自有自己的类型分别叫做undefined和null。 和void相似,它们的本身的类型用处不是很大:
let u:undefined=undefined;
let n:null=null;
//--strictNullChecks标记 可以检测数据类型 void null,undefined
//never类型表示的是那些永不存在的值的类型。
//例如,never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是never类型,当它们被永不为真的类型保护所约束时。
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}
//类型断言
//有时候你会遇到这样的情况,你会比TypeScript更了解某个值的详细信息。 通常这会发生在你清楚地知道一个实体具有比它现有类型更确切的类型。
let num:any='every day';
//第一种写法 尖括号写法
let num1:number=(<string>num).length
//第二种写法 as
let num2:number=(num as string).length;