类型声明
类型声明的写法,一律为在标识符后面添加“冒号 + 类型”。函数参数和返回值,也是这样来声明类型。
function toString(num:number):string {
return String(num);
}
另外,TypeScript 规定,变量只有赋值后才能使用,否则就会报错。
let x:number;
console.log(x) // 报错
类型推断
类型声明并不是必需的,如果没有,TypeScript 会自己推断类型。
let foo = 123;
ypeScript 也可以推断函数的返回值。
function toString(num:number) {
return String(num);
}
值与类型
学习 TypeScript 需要分清楚“值”(value)和“类型”(type)。
“类型”是针对“值”的,可以视为是后者的一个元属性。每一个值在 TypeScript 里面都是有类型的。比如,3是一个值,它的类型是number。
TypeScript 代码只涉及类型,不涉及值。所有跟“值”相关的处理,都由 JavaScript 完成。
这一点务必牢记。TypeScript 项目里面,其实存在两种代码,一种是底层的“值代码”,另一种是上层的“类型代码”。前者使用 JavaScript 语法,后者使用 TypeScript 的类型语法。
它们是可以分离的,TypeScript 的编译过程,实际上就是把“类型代码”全部拿掉,只保留“值代码”。
编写 TypeScript 项目时,不要混淆哪些是值代码,哪些是类型代码。