• 深度讲解TS:这样学TS,迟早进大厂【03】:简单的例子 helloworld


    博主是一个专注于前端开发的程序猿~
    曾经主做于vue,react,小程序,uniapp,RN等各大框架~
    现在主攻web安全,数据加密,项目架构,性能优化~
    技术之路,任道重远。未来属于努力奋斗的我们!
    有什么关于前端的疑问,可以问博主就好啦,知无不言哦~
    关注公众号:敲代码的小江,获取大厂面试题与视频讲解,了解职业发展前景。

    初学者玩转 TypeScript系列,总计 21 期,点赞、收藏、评论、关注、三连支持!
    TS系列地址: 21篇文章带你玩转ts

    Hello TypeScript

    我们从一个简单的例子开始。

    将以下代码复制到 hello.ts 中:

    function sayHello(person: string) {
        return 'Hello, ' + person;
    }
    
    let user = 'Tom';
    console.log(sayHello(user));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    然后执行

    tsc hello.ts
    
    • 1

    这时候会生成一个编译好的文件 hello.js

    function sayHello(person) {
        return 'Hello, ' + person;
    }
    var user = 'Tom';
    console.log(sayHello(user));
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在 TypeScript 中,我们使用 : 指定变量的类型,: 的前后有没有空格都可以。

    上述例子中,我们用 : 指定 person 参数类型为 string。但是编译为 js 之后,并没有什么检查的代码被插入进来。

    这是因为 **TypeScript 只会在编译时对类型进行静态检查,如果发现有错误,编译的时候就会报错。**而在运行时,与普通的 JavaScript 文件一样,不会对类型进行检查。

    如果我们需要保证运行时的参数类型,还是得手动对类型进行判断:

    function sayHello(person: string) {
        if (typeof person === 'string') {
            return 'Hello, ' + person;
        } else {
            throw new Error('person is not a string');
        }
    }
    
    let user = 'Tom';
    console.log(sayHello(user));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    let 是 ES6 中的关键字,和 var 类似,用于定义一个局部变量,可以参阅 let 和 const 命令

    下面尝试把这段代码编译一下:

    function sayHello(person: string) {
        return 'Hello, ' + person;
    }
    
    let user = [0, 1, 2];
    console.log(sayHello(user));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    编辑器中会提示错误,编译的时候也会出错:

    hello.ts:6:22 - error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string'.
    
    • 1

    但是还是生成了 js 文件:

    function sayHello(person) {
        return 'Hello, ' + person;
    }
    var user = [0, 1, 2];
    console.log(sayHello(user));
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这是因为 TypeScript 编译的时候即使报错了,还是会生成编译结果,我们仍然可以使用这个编译之后的文件。

    如果要在报错的时候终止 js 文件的生成,可以在 tsconfig.json 中配置 noEmitOnError 即可。关于 tsconfig.json,请参阅官方手册中文版)。

  • 相关阅读:
    计算机网络:IEEE 802.11无线局域网
    python数据结构补充——树
    springboot + easyRules 搭建规则引擎服务
    php如何实现文件上传
    centos篇----centos7安装docker-compose
    Linux压缩、解压缩以及打包命令
    自动创建设备结点:udev机制的实现过程
    「纯干货」接口项目/接口框架通通都有,都给你
    我要写整个中文互联网界最牛逼的JVM系列教程 | 「类加载子系统」章节:双亲委派机制的工作原理及演示
    fastapi 基本介绍+使用
  • 原文地址:https://blog.csdn.net/ZiChen_Jiang/article/details/125256560