typescript基础(1)


tsc hello.ts 转换成hello.js
node hello.js 执行并输出hello world



执行tsc init 生成tsconfig.json



自动检测是否改动并编译tsc --watch



如果修改成这样还是编译成js文件



如果传入参数不够或者其他错误问题不编译 tsc --noEmitOnError --watch


降级编译



严格模式

基本类型


设置根目录



设置输出目录



数组



类型注释




对象类型



联合类型



类型别名





接口




类型别名和接口的区别:



类型别名创建后不能更改


类型断言



不知道的类型可以先转成any再转成具体类型要不然可能报错



文字类型


类型把const中推断成string number 等类型
下文中把count推断成了number 把method推断成了string



解决


unll,undefined


枚举



typeof 类型守卫



类型缩小


真值缩小



in操作符缩小




instance操作符缩小


分配缩小


类型谓词







受歧视的unions
加!是因为radius可以不穿所以需要判断下是否存在



如果不是严格模式则不会提示这样就会有问题改写如下

两种形式都行

default

函数类型表达式



改写



然而函数表达式语法不允许声明属性,如果我们想用属性声明可调用的东西可以在对象类型中写个调用签名
调用签名

构造签名


泛型类型



也可以不写泛型ts会根据上下文推断出来类型



写多个泛型


限制条件



指定类型参数
这样会报错因为ts类型推断第一个参数的后数组是string类型后面的【1,2,3】不是string类型所以报错



修改如下


编写通用函数准则



准则1对应解说



准则2对应解说

准则3对应解说
可以不用泛型


你可能感兴趣的:(typescript基础(1))