美文网首页
TypeScript 字符串类型

TypeScript 字符串类型

作者: 暖A暖 | 来源:发表于2021-03-03 11:03 被阅读0次

    字符串声明

    JavaScript 语言中一个,在 TypeScript 中我们也可以通过单引号 '' 或者双引号 "" 来声明一个字符串类型的变量。

    示例:
    let str1:string = 'xkd';
    let str2:string = "侠课岛";
    
    console.log(str1);
    console.log(str2);
    

    这其实和 JavaScript 中的字符串类型差不多,TypeScript 中。

    字符串新特性

    TypeScript 中的字符串类型和 JavaScript 中的字符串基本类似,但是相较于 JavaScriptTypeScript 中的字符串类型新增了一些新的特性。TypeScript 中字符串的新特性有如下三种:

    • 多行字符串。
    • 字符串模板。
    • 自动拆分字符串。

    多行字符串

    首先是多行字符串,传统的 JavaScript 字符串换行需要使用 + 进行拼接,否则会报错。

    示例:

    我们来下面这段看 JavaScript 代码:

    var str = "aaa" + 
    "bbb";
    
    console.log(str);  // aaabbb
    

    将其中的 + 去掉,代码会报错:

    var str = "aaa
    bbb";
    
    console.log(str);  // SyntaxError: Invalid or unexpected token
    

    而在 TypeScript 中则不需要使用 + 拼接,我们可以使用 `` 双撇号(键盘左上角的那个按键)将字符串包起来,这样就可以直接实现换行。将上面的代码改写成 TypeScript 代码:

    let str = `aaa
    bbb`;
    console.log(str);
    

    我们在终端执行 tsc test.ts 命令,将上述 TypeScript 代码编译成 JavaScript 代码,会自动生成一个换行符\n

    var str = "aaa\nbbb";
    console.log(str);
    

    然后执行这段代码,输出结果如下:

    aaa
    bbb
    

    字符串模板

    TypeScript 中可以在多行字符串里引入一个表达式插入变量或一个方法的调用。

    示例:

    看下面这段 JavaScript 代码:

    var username = "侠课岛";
    var getName = function (){
      return "大侠";
    } 
    
    console.log("你好:" + username);
    console.log("你好:" + getName());
    

    我们可以通过字符串模板,将这段代码改写成如下所示 TypeScript 代码:

    let username:string = "侠课岛";
    let getName = function (){
      return "大侠";
    } 
    
    console.log(`你好:${username}`);
    console.log(`你好:${getName()}`);
    

    自动拆分字符串

    当我们用字符串模板去调用一个方法时,字符串模板表达式中的值就会自动赋值给被调用方法中的参数。

    示例:

    我们来看下面这段代码:

    function test(template, name, age) {
        console.log(template);  
        console.log(name);      // name就是${myName}
        console.log(age);       // age就是${getAge()}
      }
      
      var myName = "Iven";
      var getAge = function () {
        return 22;
      }
      
    // 通过字符串模板的方式,可以实现字符串的拆分
    test`我叫 ${myName},今年 ${getAge()} 岁了`;
    

    将上述代码编译成 JavaScript 代码:

    var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
        if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
        return cooked;
    };
    function test(template, name, age) {
        console.log(template);
        console.log(name); // name就是${myName}
        console.log(age);  // age就是${getAge()}
    }
    var myName = "Iven";
    var getAge = function () {
        return 22;
    };
    // 通过字符串模板的方式,可以实现字符串的拆分
    test(__makeTemplateObject(["\u6211\u53EB ", ",\u4ECA\u5E74 ", " \u5C81\u4E86"], ["\u6211\u53EB ", ",\u4ECA\u5E74 ", " \u5C81\u4E86"]), myName, getAge());
    

    输出:

    [ '我叫 ', ',今年 ', ' 岁了' ]
    Iven
    22
    

    相关文章

      网友评论

          本文标题:TypeScript 字符串类型

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