摘要:一、简介 单独使用的模块,一般会同时提供一个单独的类型声明文件(declaration file),把本模块的外部接口的所有类型都写在这个文件里面,便于模块使用者了解接口,也便于编译器检查使用者的用法是否正确。 类型声明文件里面只有类型代码,没有具体的代码实现。它的文件名一般为[模块名].d.ts的
阅读全文
摘要:一、简介 任何包含 import 或 export 语句的文件,就是一个模块(module)。相应地,如果文件不包含 export 语句,就是一个全局的脚本文件。 模块本身就是一个作用域,不属于全局作用域。模块内部的变量、函数、类只在内部可见,对于模块外部是不可见的。暴露给外部的接口,必须用 exp
阅读全文
摘要:一、什么是装饰器 装饰器是一种特殊类型的声明,它能够被附加到类声明、方法、属性或者参数上, 装饰期语法: 装饰器使用 @expression 这种形式,以@开头,expression求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入 function logController(
阅读全文
摘要:简介 映射(mapping)指的是,将一种类型按照映射规则,转换成另一种类型,通常用于对象类型。 举例来说,现有一个类型A和另一个类型B。 type A = { foo: number; bar: number; }; type B = { foo: string; bar: string; };
阅读全文
摘要:in 运算符 JavaScript 语言中,in运算符用来确定对象是否包含某个属性名。 const obj = {a:123}; if('a' in obj) { console.log('found a') } 上面示例中,in运算符用来判断对象obj是否包含属性a。 in运算符的左侧是一个字符串
阅读全文
摘要:字面量类型 在了解typeof和keyof之前,我们首先需要了解什么是字面量类型以及联合字面量类型。 TypeScript 中的字面量类型是更具体的string、number或boolean类型,它可以被这样定义: type Greeting = 'hello'; 这意味着类型为Greeting的变
阅读全文
摘要:函数 和JavaScript一样,TypeScript函数可以创建有名字的函数和匿名函数。 你可以随意选择适合应用程序的方式,不论是定义一系列API函数还是只使用一次的函数。 通过下面的例子可以迅速回想起这两种JavaScript中的函数: // Named function function ad
阅读全文
摘要:类 下面看一个使用类的例子: class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } greet() { return "Hello, " + this.greeting;
阅读全文
摘要:概念 什么是Map Map是一种数据结构(它很特别,是一种抽象的数据结构类型),数据一对对进行存储,其中包含键以及映射到该键的值。并且由于键的唯一性,因此不存在重复的键值对。 Map便是为了快速搜索和查找数据而生的。 例如: { (1, "smile"), (2, "cry"), (42, "hap
阅读全文
摘要:在JavaScript中,我们似乎很少听说接口这个概念,这是TypeScript中很常用的一个特性,它让 TypeScript 具备了 JavaScript 所缺少的、描述较为复杂数据结构的能力。下面就来看看什么是接口类型。 一、接口定义 接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都
阅读全文
摘要:定义和创建 Map 对象 在 TypeScript 中,可以使用 Map 关键字定义一个 Map 对象,然后使用 new 关键字创建一个 Map 实例。例如: let map: Map<string, number> = new Map(); 上述代码定义了一个名为 map 的 Map 对象。<st
阅读全文
摘要:一、数组类型定义 TypeScript 提供了以下两种方式来定义数组类型: 简单数组类型表示法 在TypeScript中,你可以使用数组类型表示法来定义一个数组的类型。这是一个基础的方法,直接定义数组元素的类型。 例如,如果我们想要定义一个只包含字符串类型元素的数组,我们可以这样做: let str
阅读全文
摘要:String 对象用于处理文本(字符串)。 语法 var txt = new String("string"); 或者更简单方式: var txt = "string"; String 对象属性 1. constructor 对创建该对象的函数的引用。 var str = new String( "
阅读全文
摘要:TypeScript 与 JavaScript 类似,支持 Number 对象。 Number 对象是原始数值的包装对象。 语法 var num = new Number(value); ❗️注意: 如果一个参数值不能转换为一个数字将返回 NaN (非数字值)。 Number 对象属性 Number
阅读全文
摘要:创建函数 在 TypeScript 中,可以通过两种方式创建函数。 函数声明 这些是以传统 JavaScript 风格编写的命名函数。 function showMyName(name:string):string { return `Hi ${name}` } console.log(showMy
阅读全文
摘要:一、for..of 方法 这是最常用的方法,遍历的值是数组中的value值 let someArray = [1, "string", false]; for (let entry of someArray) { console.log(entry); // 1, "string", false }
阅读全文
摘要:1、常用类型 1. 交叉类型 交叉类型就是通过 & 符号,将多个类型合并为一个类型。(一般来说在做交叉运算的时候,不会用到简单类型上,只会用到对象上面) interface T1 { name: string; } interface T2 { age: number; } type T3 = T2
阅读全文
摘要:一、解构 解构数组 1、解构赋值 let input = [1, 2]; let [first, second] = input; //相当于使用了索引 let first = input[0]; let second = input[1]; 2、作用于函数参数 function f([first,
阅读全文
摘要:any 和 unknown any 类型 any 就是任意类型。写代码时如果不确定属于什么类型,就可以将其定义为 any 类型。 any 类型属于动态类型,它支持和兼容所有的类型。 let anyValue:any; anyValue = 10; anyValue = 'kw'; anyValue
阅读全文