Skip to content

TypeScript 系列

TypeScript 中 const 和 readonly 的区别?枚举和常量枚举的区别?

  • const 和 readonly 的区别

    1. const 用于变量, readonly 用于属性
    2. const 在运行时检查, readonly 在编译时检查
    3. const 一旦声明变量,就必须立即初始化
    4. const 保证的是变量指向的那个内存地址不得改动,例如使用 const 变量保存的数组,可以使用 push,pop 等方法。但是如果使用 ReadonlyArray<number> 声明的数组不能使用 push ,pop 等方法
  • 枚举和常量枚举的区别

    1. 枚举会被编译时会编译成一个对象,可以被当作对象使用
    2. const 枚举会在 typescript 编译期间被删除,生成的 JavaScript 文件中不会存在枚举类型,所有的枚举成员都会被替换为它们的实际值 (常量枚举 会有更好的性能)

TypeScript 中 any、unknown 有什么区别?

  • 相同点:可以为 any, unknown 类型变量分配任何值
  • 不同点:使用 unknown 变量时,TypeScript 会强制执行类型检查

对 TypeScript 类中成员的 public、private、protected、readonly 修饰符的理解?

  1. public: 成员都默认为 public,被此限定符修饰的成员是可以被外部访问;
  2. private: 被此限定符修饰的成员是只可以被类的内部访问;
  3. protected: 被此限定符修饰的成员是只可以被类的内部以及类的子类访问;
  4. readonly: 关键字将属性设置为只读的。 只读属性必须在声明时或构造函数里被初始化。

TypeScript 的类型工具?

  • Exclude<T, K>: 用来从联合类型 T 里面,删除某些类型 K

  • Extract<T, K>: 用来从联合类型 T 之中,提取指定类型 K

  • Omit<Type, Keys>: 用来从对象类型 Type 中,删除指定的属性 Keys

  • Pick<Type, Keys>: 用来从对象类型 Type 中,选定指定的属性 Keys

  • Partial<Type>: 将参数类型 Type 的所有属性变为可选属性

  • Required<Type>: 将参数类型 Type 的所有属性变为必选属

TypeScript 中 type 和 interface 的区别?

  • 相同点:

    • 都可以描述 '对象' 或者 '函数'
    • 都允许拓展(extends)
  • 不同点:

    • type 可以声明基本类型,联合类型,元组
    • type 可以使用 typeof 获取实例的类型进行赋值
    • 多个相同的 interface 声明可以自动合并

TypeScript 函数声明写法

说说你对 TypeScript 的理解?与 JavaScript 的区别?

说说 Typescript 的数据类型有哪些?

说说你对 TypeScript 中枚举类型的理解?应用场景?

说说你对 TypeScript 中接口的理解?应用场景?

说说你对 TypeScript 中类的理解?应用场景?

说说你对 TypeScript 中函数的理解?与 JavaScript 函数的区别?

说说你对 TypeScript 中泛型的理解?应用场景?

说说你对 TypeScript 中高级类型的理解?有哪些?

说说你对 TypeScript 装饰器的理解?应用场景?

说说对 TypeScript 中命名空间与模块的理解?区别?

说说如何在 React 项目中应用 TypeScript?

说说如何在 Vue 项目中应用 TypeScript?

Released under the MIT License.