类型注解
布尔值 boolean
let isDone: boolean = false;
数字 number
let decLiteral: number = 6; // 十进制
let hexLiteral: number = 0xf00d; // 十六进制
let binaryLiteral: number = 0b1010; // 二级制
let octalLiteral: number = 0o744; // 八进制
字符串 string
let myName: string = "bob";
myName = "smith";
let sentence: string = `Hello, my name is ${ myName }.
任意类型 any
- 在不确定某个变量会是什么类型的情况下,可以注解为 any
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean
let notSure: any = 4;
notSure.ifItExists(); // okay, ifItExists might exist at runtime
notSure.toFixed(); // okay, toFixed exists (but the compiler doesn't check)
let prettySure: Object = 4;
prettySure.toFixed(); // Error: Property 'toFixed' doesn't exist on type 'Object'.
- 如果 any 给 对象 的话,会导致不能提示对象上原有的属性和方法
let obj: {
num: string,
toString: () => void
} = {
num: '123',
toString: function() {}
}
// 在获取 obj. 时,就会有提示,说 obj 下边有 num、toString 两个属性
let obj: any = {
num: '123',
toString: function() {}
} // 改为 any 后,获取 obj. 时就没有提示了
- 当你只知道一部分数据的类型时,any类型也是有用的。 比如你有一个数组,它包含了不同的类型的数据:
let list: any[] = [1, true, "free"];
list[1] = 100;
let a;
a = '123';
a = 123;
void