记录Typescript中的不解

记录Typescript中的不解

  • void 和 undefined 有什么区别?
  • 什么是 never 类型(一般用于函数中抛出错误与异常)?
  • readonly 和 const 有什么区别?
  • 什么是 Abstract Class?
  • typeof 关键词有什么用?
  • keyof 关键词有什么用?
  • tsconfig.json 里 --strictNullChecks 参数的作用是什么?
  • interface 和 type 声明有什么区别?
  • declare 关键字有什么用?

void 和 undefined 有什么区别?

  1. void 表示没有任何类型,并且只能赋值undefined与null;
  2. undefined与null都不能给其它类型赋值,只能赋值给自己本身;
  3. 他们只属于其它类型下的子类型;

什么是 never 类型(一般用于函数中抛出错误与异常)?

  1. never类型表示不存在的值类型,一般用于不会有返回值的函数,以及不会有类型声明保护的值,也是never类型;
  2. never类型只能赋值给自己本身,即使any也不能赋值给never,因为本身的含义就是不存在。

readonly 和 const 有什么区别?

  1. readonly只允许读,但不允许修改;
  2. const声明赋值后就不能再更改,区别就在于const需要初始化赋值,而readonly不用。

什么是 Abstract Class?

用关键字abstract修饰的类,被称为抽象类;
不允许被实例化的类,必须要通过子类创建才能使用,在abstract 父类中用abstract修饰的方法,必须在子类中实现。

typeof 关键词有什么用?

	可以用来获取对象的结构类型与函数的结构类型(进行结构类型的拷贝)

keyof 关键词有什么用?

	用于获取某种类型的所有键,其返回类型是联合类型

tsconfig.json 里 --strictNullChecks 参数的作用是什么?

	严格校验null

interface 和 type 声明有什么区别?

type 和 interface 的语法不一样
type 需要等号,而 interface 不需要等号
interface主要声明的是函数和对象,并且总是需要引入特定的类型
type声明的可以是任何的数据类型(基本类型别名,联合类型,元组等类型)

declare 关键字有什么用?

	声明一个全局变量

有问题的地方请大家指出,我会及时修改~

你可能感兴趣的:(前端,后端,前端,reactjs,vue.js,typescript,javascript)