资讯专栏INFORMATION COLUMN

TypeScript,初次见面,请多指教 ?

Sunxb / 1064人阅读

摘要:推我的是团队正在日益普及我希望推动你的可以是这篇文章接下来,会有的项目为背景,介绍我在初学开发项目中遇到的一些问题,希望对你有所帮助。

摘要: TS入门手册。

原文:TypeScript,初次见面,请多指教

作者:徐祁

Fundebug经授权转载,版权归原作者所有。

为什么用 TS ?

说实话,最开始并没有想把 TS 用到实际项目中来,一来是感觉“类型”会限制 JS 的优势(好吧,就是浪写浪惯了);二来听闻 TS + Redux 的酸爽滋味,有点望而却步;三来 TS 环境使用的库需要加类型的声明,很多库并不支持,有点担心推进的流畅度 ...

这个时候,就需要有一股无形的力量推你一把。推我的是团队正在日益普及 TS, 我希望推动你的可以是这篇文章 ~

接下来,会有 React + TS 的项目为背景,介绍我在初学 TS 开发项目中遇到的一些问题,希望对你有所帮助。

一. 如何优雅的声明类型

1. 基础

不就是比 JS 多了一个类型声明吗?老夫撸起袖子拎起键盘就是一梭子:

interface Basic {
  num: number;
  str: string | null;
  bol?: boolean;
}

轻轻松松,五种 JS 值类型就声明好了。那数组、函数呢?再来:

interface Func {
  func(str: string): void;
}

interface Arr {
  str: string[];
  mixed: Array;
  fixedStructure: [string, number];
  basics: Basic[];
}

除此之外,竟然还可以定义自己的类型呢,比如常用的回调函数,在声明处需要指定回调函数的类型:

event.on("change", function() {});

那这个 on 方法需要如何声明呢?试试看 Function当 cb 函数的类型呢

on(type: string, cb: Function): {}

然后就恭喜了,你会得到一个 tslint error :

庆幸的是,在这个 error 里面它告诉了你应该怎么做:声明一个专用的函数类型就可以了:

type Cb = () => void;

on(type: string, cb: Cb);

至此,我们的 TS 人生算是起步了

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109150.html

相关文章

  • 前端每周清单第 45 期: Safari 支持 Service Worker, Parcel 完整

    摘要:的另一个核心特性,苹果表示也正在开发中,按开发进度可能几个月后就能与我们见面。是基于的本地化数据库,支持以及浏览器环境。 前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎关注【前端之巅】微信公众号(ID: frontshow),及时获取前端每周清单。 本期是 2017 年的最后一...

    赵春朋 评论0 收藏0
  • Element-ui实现合并多图上传(一次求多张图片)

    摘要:实现多图上传主要用到以下两个属性是自带多图上传的,但是细心的朋友可能发现默认多图的实现可能和我们预期有些出入,有截图可以看出,实质是进行多次请求在上传事件触发后,多图上传的默认实现调用了三次请求。 前言 工作中碰到需要多图上传,在使用element-ui解决过程中碰到一些问题,在这里分享给大家。 环境: Springboot+Vue+Element-ui 正文 这次上传使用的是Elem...

    loostudy 评论0 收藏0
  • typescript开发手势库 - (1)web开发常用手势有哪些?

    这只是个开头 说在最前面,本文是一个系列文章的开头, 这个系列里我会讲如何用typescript开发一款支持pc和手机端的手势库any-touch, 以及通过jest让你的代码测试覆盖率100%. showImg(https://segmentfault.com/img/bVbp3B0?w=936&h=246); 目录 用TypeScript开发手势库 - (2)tsconfig.json & r...

    raise_yang 评论0 收藏0
  • 初次见面,能否把你的「注册表」都给我?#yyds干货盘点#

    摘要:一前言注册表对于注册中心尤为重要,所有的功能都是围绕这个注册表展开。条件二注册表信息是否为空。这样就会有一份的注册表信息了。对于端来说,首次获取注册表时就会全量抓取注册表,存在自己本地。后续第二次见面,怎么获取注册表呢 大家好,我是悟空。一、前言注册表对于注册中心尤为重要,所有的功能都是围绕这个注册表展开。比如...

    刘厚水 评论0 收藏0
  • 十分钟你理解TypeScript中的泛型

    摘要:进入其下载的目录,并按照提示进行安装。理解中心思想刚才使用类型导致的问题,可以用中的泛型来解决。你可以在泛型声明中继承它这告诉,可使用任何具有属性的类型。在中使用泛型的主要原因是使类型,类或接口充当参数。 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 showImg(https://segmentfault.com/img/bVbuXpw?...

    hosition 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<