美文网首页
TypeScript入门

TypeScript入门

作者: 戈壁堂 | 来源:发表于2021-05-21 18:12 被阅读0次

    TypeScript做为JS的超集,增强了Type的检查。但检查结果不影响最终的执行,因为依然使用JS相同的runtime。例如console.log(4/[])对应JS来说是有效的(- -|自由的过了火?),返回Infinity,对于TS来说检查出问题:The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. 但编译到JS之后依然可以正常执行。参考TypeScript: A Static Type Checker

    JS过于自由,所以诞生TS,支持静态检查,引入了类似静态语言的类型检查、语法支持等扩展(但扩展的内容在编译后又会擦除这一切,因为最后再编译到JS语言(使用跟JS完全相同的runtime)进行使用——这样就可以依赖现有的JS生态。TS这个切入方式厉害了。不需要单独为TS写任何框架,现有的JS框架中都可以使用TS。TS in 5 minutes

    有Java背景的看一篇基础介绍基本就可以上手TypeScript 入门教程

    实际上比Java更灵活,Type类型检查只是“名义上的”,实际上是一组set,所以可以这样定义type Foo = string | number | boolean;。另外,“类型擦除”又类似Go语言中的“实现了所有接口方法的结构体都被认为实现了改接口”,例如——

    interface Pointlike {
      x: number;
      y: number;
    }
    interface Named {
      name: string;
    }
    
    function logPoint(point: Pointlike) {
      console.log("x = " + point.x + ", y = " + point.y);
    }
    
    function logName(x: Named) {
      console.log("Hello, " + x.name);
    }
    
    const obj = {
      x: 0,
      y: 0,
      name: "Origin",
    };
    
    logPoint(obj);
    logName(obj);
    

    看完上面这些就可以直接找项目上手练习了。

    相关文章

      网友评论

          本文标题:TypeScript入门

          本文链接:https://www.haomeiwen.com/subject/kvbwjltx.html