通过在变量或函数后添加类型进行约束
let a:number = 10 function name():string{}
类型系统按照「是否允许隐式类型转换」来分类,可以分为强类型和弱类型
类型系统按照「类型检查的时机」来分类,可以分为动态类型和静态类型
强类型语言不允许改变变量的数据类型,除非进行强制类型转换
弱类型语言中,变量的值其类型是宽泛的,可以被赋值多种类型的值 TS
指在编译阶段就会进行类型检查 TS
指在运行时才会进行类型检查
指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,不符合则报错
变量声明和赋值同时进行时TS会自动判断变量的类型,可以省略类型声明
解构时重命名
let testobj= {a:"1",b:"2",c:"3"} let {a:a1,b:b1} = testobj console.log(a1,b1,typeof(a1),typeof(b1))//1 2 string string
若需要解构时约束其类型,需要在后面写上完整的模式
let testobj= {a:"1",b:"2",c:"3"} let {a:a2,b:b2}:{a:string,b:string} = testobj console.log(a2,b2,typeof(a2),typeof(b2))//1 2 string string
展开对象时仅包含自身的可枚举属性
class C { p = 12; m() { } } let c = new C(); let clone = { ...c }; clone.p; // ok clone.m(); // error!
本文作者:RKLS
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!