VSCode配置与插件(好用的)
Typescript Importer
:辅助开发 提示项目中的类型定义Move TS
:编辑文件的路径 => 修改项目的目录结构ErrorLens
:将VsCode底部问题栏的错误直接显示到代码文件中的对应位置。
npm包:
想要执行ts文件的话。
ts-node
: 全局安装下。一些配置项可以通过tsconfig.json的ts-node
字段配置。也可以命令行输入。(ts-node是执行环境
,tsc是ts编译器
)。ts-node-dev
: 能监听文件变化并重启的ts-node,基于ts-node与node-dev实现。
原始类型和对象类型
null与undefined
在js中,null
和undefined
分别表示这里有值但是是个空值
和这里没有值
。
在ts中,俩个都是有具体意义的类型。
同时在未开启--strictNullChecks
检查的情况下,会被视作其他类型的子类型。
void
在js中,void表示的是void exprssion语法。 在ts中,void描述的是内部没有return语句、或者没有显式return一个值的函数的返回值。
数组
const arr1:string[] = [];
const arr2:Array<string> = [];
元组
基于位置的类型标注、避免出现越界访问等严谨性问题上,可以考虑用元组替换数组。
const arr:[string,number?] = ['xx',19]
// 具名元组
const arr:[name:string,age?:number] = ['xx',19]
//对于标记为可选的成员,在 `--strictNullCheckes` 配置下会被视为一个 `string | undefined` 的类型。此时元组的长度属性也会发生变化,比如上面的具名元组 ,其长度的类型为 `1 | 2`:
type与interface
interface 用来描述对象、类的结构,而类型别名用来将一个函数签名、一组联合类型、一个工具类型等等抽离成一个完整独立的类型。(当然不绝对,团队怎么搞你怎么搞)
object、Object以及{}
object
代表所有非原始类型的类型,即数组、对象与函数类型这些:
const tmp22: object = { name: 'linbudu' };
const tmp23: object = () => {};
const tmp24: object = [];
Object
表示装箱类型,反正别用。
{}
代表对象字面量类型,反正别用。