Typescript进阶Day1

89 阅读2分钟

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中,nullundefined分别表示这里有值但是是个空值这里没有值。 在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表示装箱类型,反正别用。 {}代表对象字面量类型,反正别用。