前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Typescript: the Good Parts

Typescript: the Good Parts

作者头像
IMWeb前端团队
发布2019-12-04 13:07:36
4320
发布2019-12-04 13:07:36
举报
文章被收录于专栏:IMWeb前端团队

本文作者:IMWeb 杨文坚 原文出处:IMWeb社区 未经同意,禁止转载

Typescript: the Good Parts

Douglas Crockford 曾经扯了个Javascript的蛋,这次我来学一下,扯一下Typescript的。

ES6 import make no sense ?

如果我们这样是import模块会怎么样呢?

代码语言:javascript
复制
import * as lib from libPath;

sorry,这根本走不通,因为import是个静态语法,设计者根本不希望模块加载和上下文有关系。静态化有什么好处?

  1. 编译/解析器可以做更好地预处理进行优化,比如解决令我们头疼的NodeJS require is dog slow!
  2. 为未来实现提供可能性

Optional Type System

我就喜欢苗条,为啥要加类型?

  • Key Point:单页应用客户端应用服务端应用单人搞不定,需要很多人,并没有适用于Javascript这种无类型语言的团队开发模式,但面向对象,面向接口这些开发方式在有类型语言已经非常成熟。

有类型到底有什么好处呢?

  • 编译时发现错误
  • 代码提示
  • 安全快速重构
  • 面向对象、面向接口编程
  • 性能优化
  • IDE支持
  • Duck Type

我们难道不能等标准来临么?

符合审美的类型标准ES6、ES7没有,甚至ES8也不会有。

Better Async way you must wanted

怎么写异步比较好?async function解决你所有问题。

代码语言:javascript
复制
async function main() {
 await ping();
}

async function ping() {
 for (var i = 0; i < 10; i++) {
  await delay(300);
  console.log("ping");
 }
}

function delay(ms: number) {
 return new Promise(resolve => setTimeout(resolve, ms));
}

main();

Any JavaScript code is a valid TypeScript code

可以直接在Typescript中只使用Javascript而不会产生任何问题,这样对迁移和混用都足够友好。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-11-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Typescript: the Good Parts
    • ES6 import make no sense ?
      • Optional Type System
        • Better Async way you must wanted
          • Any JavaScript code is a valid TypeScript code
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档