TypeScript
https://www.typescriptlang.org/docs/handbook/2/basic-types.html
typescript在传统es的基础上增加了很多新特性。
1 tsc-typescript的编译器
因为目前主流的浏览器主要支持的脚本是es3,我们编写的ts代码需要首先编译为es3才能够被浏览器执行。tsc是专门编译ts的编译器
我们举几个例子说明ts的基础知识
function greet(person, date) { console.log(`Hello ${person}, today is ${date}!`); } //greet("Brendan");
执行 tsc hello.ts ,编译会报错,但是还是在当前路径下生成了hello.js
function greet(person, date) { console.log(`Hello ${person}, today is ${date}!`); } greet("Brendan");
这种情况是ts编译器默认的行为,因为有时我们希望将js转换成ts,而如果编译出错代码就不能执行的话,这样看起来不合理。
如果确实要进行严格的语法检查,我么可以这样运行
tsc --noEmitOnError hello.ts
显式类型
function greet(person: string, date: Date) { console.log(`Hello ${person}, today is ${date.toDateString()}!`); } greet("Maddison", new Date());
我们显式指定变量的类型,如果调用函数时类型不匹配,将会编译报错。
一般情况下,我们没必要显式指定类型,ts会自动判断类型
ts默认编译的目标版本为ES3。
function greet(person: string, date: Date) { console.log(`Hello ${person}, today is ${date.toDateString()}!`); } greet("Maddison", new Date());
比如上面的模板字符串``,经过编译后为
function greet(person, date) { console.log("Hello " + person + ", today is " + date.toDateString() + "!"); } greet("Maddison", new Date());
假如我们就是想编译为更高级别的es版本,使用 --target es2015 参数
ECMAScript2015(es2015或者es6)
tsc --target es2015 hello.ts
编译之后的文件
function greet(person, date) { console.log(`Hello ${person}, today is ${date.toDateString()}!`); } greet("Maddison", new Date());
持续更新....
https://blog.csdn.net/w96098/article/details/108326431