随笔分类 - TypeScript
摘要:一、为什么需要声明文件 1、创建 src/sum/index.js 文件,内容如下: 这是一个最普通不过的 js 文件,对外暴露 sum() 方法,在 nodejs 中运行。 function sum(a, b) { return a + b } module.exports = sum 2、创建
阅读全文
摘要:一、TypeScript 泛型 软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的
阅读全文
摘要:一、TypeScript 函数 1、TypeScript 函数与 JavaScript 函数的区别:我们主要看一下不同的 TypeScript 函数:函数有类型、函数有返回值类型、参数有类型、有必填和可选参数、有函数重载 JavaScript 函数:函数无类型、函数无返回值类型、参数无类型、所有参数
阅读全文
摘要:一、类型守卫 类型保护是可执行运行时检查的一种表达式,用于确保该类型在一定的范围内。 换句话说,类型保护可以保证一个字符串是一个字符串,尽管它的值也可以是一个数值。类型保护与特性检测并不是完全不同,其主要思想是尝试检测属性、方法或原型,以确定如何处理值。目前主要有四种的方式来实现类型保护: 1、in
阅读全文
摘要:一、警告:warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any 解决方案:关闭any类型的警告。 // 在 .eslintrc.js文件中找到rules 添加一行代码即可 "@types
阅读全文
摘要:一、const 和 readonly 的区别 1、TypeScript 中不可变量的实现方法有两种: 使用 ES6 的 const 关键字声明的值类型 被 readonly 修饰的属性 2、TypeScript 中 readonly: TypeScript 中的只读修饰符,可以声明更加严谨的可读属性
阅读全文
摘要:一、报错提示:Property 'xxx' does not exist on type 'never'. 开发过程中出现这个错误是因为Typescript在执行代码检查时在该对象没有定义相应属性,这个错误不致命,遇到该错误有以下几种解决办法。 1、将对象设置成 any this.targetArr
阅读全文
摘要:二、命名空间 命名空间一个最明确的目的就是解决重名问题。 命名空间定义了标识符的可见范围,一个标识符可在多个名字空间中定义,它在不同名字空间中的含义是互不相干的。这样,在一个新的名字空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他名字空间中。 TypeScript
阅读全文
摘要:一、基础类型 1、布尔类型boolean: let isDone: boolean = false; 2、数字类型number 3、字符类型string 4、Symbol 类型 const sym = Symbol(); let obj = { [sym]: "***", }; 5、数组类型(无关键
阅读全文
摘要:在 typescript 里面,有两个概念十分容易混淆,那便是 type 和 interface,它俩都可以用来表示 接口,但是实际使用上会存在一些差异 一、相同点 它俩就是对 接口定义 的两种不同形式,目的都是一样的,都是用来定义 对象 或者函数 的形状 1、interface 如何定义接口或函数
阅读全文