Typescript-01

本节:自学的一些typescript的就基本语法。

ts的提示性更强,ts会检查代码 ,ts代码要tsc编译成js代码,才可以正常运行

一、函数的不同,1.function变成 =>  2.全部的变量 ,数组都加了一个冒号和类型,  变量名:类型

Typescript-01_第1张图片

prototype(允许您向对象添加属性和方法):对象.prototype.增加的属性  = "赋的值"

Typescript-01_第2张图片

 数组的不同:就是多了个数组名:类型[]

Typescript-01_第3张图片

TypeScript 元组

我们知道数组中元素的数据类型都一般是相同的(any[] 类型的数组可以不同),如果存储的元素数据类型不同,则需要使用元组。

元组中允许存储不同类型的元素,元组可以作为参数传递给函数。

var mytuple = [10,"Runoob"]; // 创建元组
console.log(mytuple[0])  //10
console.log(mytuple[1])  //Runoob
  • 数组名.push() 向元组添加元素,添加在最后面。

  • 数组名.pop() 从元组中移除元素(最后一个),并返回移除的元素。

数组的赋值:ts可以直接 [赋值的对象] = 赋值的内容  ,而js要一个下标一个下标的赋值

Typescript-01_第4张图片

      |  ,?,any  
?就是这个变量可以有也可以没有,类型加?就是类型可以是任意类型
!!返回原来的数
&交叉类型,就是两种函数里面的参数 都可以使用
断言,  |选择你要用的对象,指定你要的属性 as any 
ts里面构造函数要提前声明变量,ts里面要用到的变量都必须提前声明变量
public全部都可以用,private私有可以用,protected继承它的子类可以用它的变量
static静态属性,就是不像其他变量要new成实例化对象,就可以直接调用属性,static还有静态函数的,一样直接调用方法就可以了。静态属性,只能用this访问别人的静态属性,别人也不能通过this访问静态函数,只可以用自己的 函数名.静态函数调用。静态函数可以互相调用。
implements关联另一个接口变量 ,通过接口约束那个类,调用那个类
constructor构造函数,abstract是抽象类,抽象类是不能被new实例化的

元组是固定数量,不同类型的数组。
字符才有length,数字没有length

通过enum定义 枚举,玫举默认就是012开始的值,增长玫举,就是可以改变第一个数,然后数组就会自己往下递增  
readonly变量只读,不能改变

类型推论和类型别名
类型推论,就是你定义变量,但是不定义类型,ts就会根据你赋值的内容,来推论出你这个变量是什么类型的。
类型别名就是给每个类型,定义一个新的名字,这样你定义变量的时候,就可以直接用别名。
type s = string//把string类型,定义成s,后面要定义string类型,就直接用s就可以了
never表示状态不存在,出现never的时候,说明你赋值的逻辑可能有问题。函数里面, 永远不会有返回值的时候,就定义一个never类型。never只能作为父类型,不能作为子类型赋值,还有就是在switch里面做判断的时候的default,兜底类型,就是出错的时候,可以用never来定义类型
symbol类型是一个唯一值,symbol类型的值是symbol构造函数创建的,里面传对数字和字符串比较好,不能传对象。 symbol类型的属性要通过 object.getOwnPropertySymbols(变量)才可以被单独打印出symbol类型,reflect.ownKeys(变量)
symbol.iterator迭代器,迭代器函数,通过输出的done状态,看得,是否输出完了,为true说明输出完了  变量.next()输出迭代
变量名.set(),可以往map里面放内容。迭代器有什么用。
生成器 迭代器都只支持数组,不支持对象

for(let i of arr){}  of是取值的,in是取下标的

泛型, 定义的时候不明确类型, 传参的时候,再定义类型,ts就会自动进行类型推断,防止代码冗余。可以少定义函数类型,可以用keyof来限制泛型对象。
泛型类, 
如果直接在ts文件里面定义变量,则默认为全局的,除非前面加个export导出,就可以变量名重复,不同文件就互不干扰。

三斜线指令 ,可以导入其他文件
///    ///也等于import

declare声明文件,一些依赖或者模块是通过declare关键字来声明文件的,当然还可以直接下载依赖

Mixins混入,对象混入和类的混入
Object.assign(变量名1,变量名2)合并对象,输出的值,为交叉类型,就是什么类型都有
装饰器Decorator,增加代码的可读性, 
 

你可能感兴趣的:(TypeScript,javascript,开发语言,ecmascript)