大前端学习--TypeScript

TypeScript

一、JavaScript
1. 弱类型、动态语言的缺陷
  • 程序中的异常在运行时才能发现

  • 类型不明确函数功能会发生改变

  • 对对象索引器的错误用法

2. 强类型的优势
  • 错误更早暴露
  • 代码更智能,编码更准确
  • 重构更牢靠
  • 减少不必要的类型判断

二、Flow
1. Flow是JavaScript类型检查器
// : number 叫做类型注解
function sum (a: number, b: number) {
   
  return a + b
}
console.log(sum(1, 2))
2. 如何安装并使用flow
  • 先执行yarn init -y

  • 执行yarn add flow-bin

  • 在代码中第一行添加flow注释:// @flow

  • 在函数中形参后面加上冒号和类型:function sum (a: number, b: number)

  • 执行yarn flow init创建.flowconfig

  • 执行yarn flow

    // @flow
    // : number 叫做类型注解
    function sum (a: number, b: number) {
         
      return a + b
    }
    console.log(sum(1, 2))
    
    console.log(sum('100', '100'))
    
3. 如何移除flow注解

flow官方提供的操作:

  • yarn add flow-remove-types --dev

  • yarn flow-remove-types src -d dist

使用babel配合flow转换的插件:

  • yarn add @babel/core @babel/cli @babel/preset-flow --dev

  • .babelr文件:

    {
         
      "presets": ["@babel/preset-flow"]
    }
    
  • yarn babel src -d dist

4. 开发工具插件

VsCode中的插件:Flow Language Support

5. Flow支持的类型

/**
 * 原始类型
 * @flow
 */

 const a: string = 'foo'

 const b: number = Infinity // NaN // 100

 const c: boolean = false // true

 const d: null = null

 const e: void = undefined

 const f: symbol = Symbol()

 const arr: Array<number> = [1, 2, 3]

 const arr2: number[] = [1, 2, 3]

 // 元组
 const foo: [string, number] = ['foo', 100]

const obj1: {
   foo: string, bar: number} = {
   foo: 'string', bar: 100}

// 问号表示可有可与的属性
const obj2: {
   foo?: string, bar: number} = {
   bar: 100}

// 表示当前对象可以添加任意个数的键,不过键值的类型都必
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值