TypeScript 字符串类型

指针薄雾
• 阅读 1375

字符串声明

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
点赞
收藏
评论区
推荐文章
Karen110 Karen110
4年前
盘点JavaScript中Eval函数的使用方法
大家好,我是进阶学习者。一、前言内建函数eval函数允许执行一个代码字符串。语法:letresulteval(code);例:letcode'alert("Hello")';eval(code);//Hello运行结果:代码字符串可能会比较长,包含换行符、函数声明和变量等。eval的结果是最后一条语句的结果。例:let
九路 九路
4年前
Go语言字符串和数值转换
一.字符串概述字符串是一段不可变的字符序列.内容是任意内容,可以是一段文字也可以是一串数字,但是字符串类型数字不能进行数学运算,必须转换成整型或浮点型字符串类型关键字:string创建字符串类型变量govarsstring"hello,world"s1:"hello,world"字符串类型的值使用双引号""扩上
Easter79 Easter79
3年前
TypeScript学习笔记
TypeScript学习笔记TypeScript是JavaScript的超集,任何合法的JS程序都是合法的TypeScript程序TypeScript通过向JavaScript增加可选的静态类型声明来把JavaScript变成强类型程序语言。静态类型声明可约束函数、变量、属性等程序实体。TypeScript语言内
Easter79 Easter79
3年前
TypeScript 4.1 新特性:字符串模板类型,Vuex 终于有救了?
TypeScript4.1快要发布了,老爷子AndersHejlsberg\1\加入了一项重大更新,「字符串模板类型」的支持。昨天看到这个更新的我特别兴奋,曾几何时,只要一遇到字符串拼接相关的类型,TypeScript就束手无策了,比如:Vuex中加了namespace以后,dispatch一个m
Wesley13 Wesley13
3年前
PHP_50则
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
Wesley13 Wesley13
3年前
Java基础之字符串
5.1字符字符指的用单引号括起来的单个字母。java中,char表示字符的数据类型。一个字符在内存中占16位大小的空间(2个字节)。5.2字符串字符串或串是由零个或多个字符组成的有限序列,它是编程语言表示文本的数据类型。串的两个最基本的存储方式是顺序存储方式和链接存储方式5.2.1字符串声明与赋值String是字符串变量的类型
小万哥 小万哥
1年前
Python 中的字符串基础与应用
在Python中,字符串可以用单引号或双引号括起来。'hello'与"hello"是相同的。您可以使用print()函数显示字符串文字:示例:Pythonprint("Hello")print('Hello')将字符串分配给变量是通过变量名后跟等号和字符串
小万哥 小万哥
1年前
C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法
字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合示例:csharp//创建一个string类型的变量并赋予一个值stringgreeting"Hello";如果需要,一个字符串变量可以包含多个单词:示例:csharpstringgreeting
小万哥 小万哥
1年前
C++ 字符串完全指南:学习基础知识到掌握高级应用技巧
C字符串字符串用于存储文本。一个字符串变量包含由双引号括起来的一组字符:示例创建一个string类型的变量并为其赋值:cppstringgreeting"Hello";C字符串连接字符串连接可以使用运算符来实现,生成一个新的字符串。示例:cpps
小万哥 小万哥
1年前
Kotlin 数据类型详解:数字、字符、布尔值与类型转换指南
Kotlin中变量类型由值决定,如Int、Double、Char、Boolean、String。通常可省略类型声明,但有时需指定。数字类型分整数(Byte,Short,Int,Long)和浮点(Float,Double),默认整数为Int,浮点为Double。布尔值是true或false,Char用单引号,字符串用双引号。数组和类型转换将在后续讨论,转换需用特定函数。
小万哥 小万哥
1年前
Kotlin 字符串教程:深入理解与使用技巧
Kotlin中的字符串用于存储文本,定义时使用双引号包围字符序列,如vargreeting"Hello"。Kotlin能自动推断变量类型,但在未初始化时需显式指定类型,如varname:String。可通过索引访问字符串元素,如txt0获取首字符。字符串作为对象,拥有属性和方法,如length获取长度,toUpperCase()转大写。可使用compareTo()比较字符串,indexOf()查找子串位置。字符串中嵌入单引号表示文本内的引号,如"It&39;salright"。使用或plus()