TS-黑马(一)

目录:

(1)ts-入门

(2)ts-类型-标注位置

(3)ts-类型-复杂类型

(4)ts-类型-函数类型


(1)ts-入门

我们讲过javaScript语言是动态的语言,动态的语言可能出现一些问题,比如说:这个函数的参数就是动态的可以是任何类型:对象、函数、数字、字符串...

 

 比如是字符串类型:

 

 

 

 但是这个函数写好后,使用者没有考虑这个类型,传了数字类型:但是数字里面没有字符串的方法:就会报错:

 

javaScript是动态类型语言,那么它想要拥有静态类型语言的特点,行不行呢?我们可以对javascript进行扩展,扩展成一个新的语言叫做typescript语言:他就具有静态类型的检查:

定义:.ts  定义函数是参数做类型检查,定义字符串类型,定以后就会显示字符串的方法

 

 

 

当参数传递不是字符串:123就会报错 

 

 typeScript的代码不能直接运行,必须经过编译成js才能够运行,typeScript只是在编译期间做类型的而检查,所以我们需要安装一个typeScript的编译器:

是用npm安装:-g是全局安装

 首先进入代码目录:执行tsc编译:

编译之后就会生成一个同名的hello.js:编译之后就会做一个类型的擦除:退回到动态类型了,在编译值前做了类型的检查了,就不会传递过来一个错误的做法

 

 (2)ts-类型-标注位置

 typeScript对类型的支持还是比较丰富的

标注变量:     用法:在定义变量时:他就会显示message字符串的方法 

当赋的值为字符串时可以省略: 

 

 

 标注函数:

 

标注返回值:

 

这个函数的类型声明可以省略: 

 类型声明可以加在变量上、参数上、函数的返回值上,很多情况下可以把类型声明省略,只要它能够推断出类型这个类型:变量类型,参数类型,返回值类型。就可以省略这是typeScript做了很多类型推断。

(3)ts-类型-复杂类型

用type声明:赋值是属性要对应,不能多不能少。,多了少了爆红

 

 interface声明:跟type声明一致。赋值是属性要对应,不能多不能少。,多了少了爆红

 复杂类型这两个都可以,对于java程序员来说可用interface容易理解:

他们编译之后复杂类型就会丢失:

编译:

 

interface就没有了,被擦除了 

 

 它的检查只在编译阶段,编译之后就没了

定义可选类型:

typeScript定义的复杂类型,赋值是如果想要类型是可选的,在定义时加?

可选属性:属性有也可以没有也可以,没有的话,访问的话是undefind

 

 

 当一个变量没有明确声明类型时,如果它跟需要的类型比较像,那么他就可以被当成这个类型目标类型:

被当成这个目标类型Cat在里面可以访问这个Cat类型的属性 ,但是不能访问这个目标类型的没有的属性,否则会报错

 

 (4)ts-类型-函数类型

方法的定义:没有参数,没有返回值 

 上面只是方法的定义,它还没有具体的实现,你要真正去实现它需要创建api对象里面给方法一个实现,跟java的interface像似了:

下面我们定义一个字符串参数,返回值也是字符串的函数怎么写呢?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵俺第一专栏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值