[TOC]

TypeScript

  • 可能比js要厉害一点
  • 我看这个东西能够生成js
  • 听说php,js的漏洞不少,什么弱类型的我也是略知一二的,不知道ts有没有这种,据知乎说ts是比较安全的语言
  • 这个是含分号语言
  • 需要编译,从ts编译到js,属于编译型语言,和python的解释型语言不同,不能跑一半

目的

想要魔改某个live2d项目,该项目是基于ts写的一个前端。

不才对于ts和前端可是一窍不通

安装

1
npm install -g typescript

运行

1
2
var message:string = "hello world"
console.log(message)
1
tsc app.ts

可以生成js文件

1
node app.js

可以使用node执行,就是输出helllo world的日志

image-20230514192310878

  • 请注意,vscode和pycharm不一样,vscode一定要save才会save的,或者需要设置,像是pycharm就不错

数据类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let flag: boolean = true;
//使用单引号(')或双引号(")来表示字符串类型。反引号(`)来定义多行文本和内嵌表达式。
let name: string = "Runoob";
let words: string = `您好,今年是 ${ name } 发布 ${ years + 1} 周年`;
// number 数字类型,实际上是双精度浮点类型 ,数字类型只有number,不存在int,double之类的
let years: number = 5;
// string
let words: string = `您好,今年是 ${ name } 发布 ${ years + 1} 周年`;
// 元组
let x: [string, number];
x = ['Runoob', 1];
// any类型,不明或者会动态改变的
let x :any=1;
x = 'i am who i am'
x= false; // 不出错,语法检查会跳过any类型

数据需要声明,采用”let 名称:类型“的形式

printf

1
console.log(内容)

就是ts里面的print

运算符

1
2
>>>  // 表示无符号右移
>> // 有符号右移

其他各符号和正常语言相同

1
2
var num:number=12
console.log(typeof num) //输出结果: number

lamba表达式

1
2
var foo = (x:number)=>10+x
console.log(foo(100)); //110

注意

1
2
3
4
var ss:number[]=[1,22,2,2,2]
for(var val in ss){
console.log(ss[val]);
}
1
2
3
4
5
6
var j:any; // var j:string;// 也行
var n:any = "a b c"

for(j in n) {
console.log(n[j])
}

给出的j是数组下标

for…of 语句创建一个循环来迭代可迭代的对象

1
2
3
4
5
let someArray = [1, "string", false];

for (let entry of someArray) {
console.log(entry); // 1, "string", false
}
1
2
3
4
5
var foo = (x:number)=> {    
x = 10 + x
console.log(x)
}
foo(100) //110