TypeScript 字符串类型
字符串声明
同 JavaScript
语言中一个,在 TypeScript
中我们也可以通过单引号 ''
或者双引号 ""
来声明一个字符串类型的变量。
示例:
let str1:string = 'xkd';
let str2:string = "侠课岛";
console.log(str1);
console.log(str2);
这其实和
JavaScript
中的字符串类型差不多,TypeScript
中。字符串新特性
TypeScript
中的字符串类型和 JavaScript
中的字符串基本类似,但是相较于 JavaScript
, TypeScript
中的字符串类型新增了一些新的特性。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()}`);
自动拆分字符串 当我们用字符串模板去调用一个方法时,字符串模板表达式中的值就会自动赋值给被调用方法中的参数。
示例: 【TypeScript 字符串类型】我们来看下面这段代码:
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
推荐阅读
- 一起来学习C语言的字符串转换函数
- 字符串拼接成段落,换行符(\n)如何只执行n-1次
- C语言的版本比较
- typeScript入门基础介绍
- mysql|InnoDB数据页结构
- 接口|axios接口报错-参数类型错误解决
- 带你了解类型系统以及flow和typescript的基本使用
- 史前艺术的审美类型「清央美术」
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JS截取字符串的方法详解