ts定义:融合了后端面向对象思想的超级版的javascript语言。
环境搭建:
1.npm init -y
2.npm i typescript -D
3.tsc --init 初始化tsconfig.json配置文件
ts的优势 :
1.编译时静态类型检测
2.自动提示更清晰明确
3.引入了泛型和一系列的ts特有的类型
4.强大的d.ts声明文件
5.轻松编译成JS文件
6.灵活性高
名词解释:
类型注解 let data:number = 3;
定义了数据类型,不可以修改
类型推导: let money = 30;
未定义数据类型,第一次可以随意写值
如果不想让多个ts文件中的相同数据报错(当成一个文件检测),在每个ts文件最后写上export{}
,加上它之后,那么就改变了数据的作用域,当前变量的作用域只是当前文件。
SyntaxError: Unexpected token ':'报错:
要将ts转换成js,才可以正常编译
ts类型:
-
- 基本类型:number,string,boolean,symbol,null,undefined
-
- 根类型:
Object ,{} 根类型:所有其他类型的父类。除了null,undefined这种空类型不能赋值给Object.
let data:Object = 2
let data:Object = “3”
let data:Object = [1,2]
let data:Object = {1,2}
let data:Object = new Set()
Object是全写,{}是简写 它们俩是一样的
- 根类型:
-
3.对象类型:Array,Object, function
let data:object={name:1} 这里与上面Object不一样呦,这里是小写的object,它只是对象类型,大写的Object是根类型。 -
4.枚举:enum
-
5.其他类型:any, unknown, never, void, 元组(tuple), 可变元组
-
6.合成类型: 联合类型,交叉类型
例:
联合类型:
let str:string | number | boolean | object = ‘abc’;
str = 1;
str = ‘2’;
交叉类型:
let obj:{username:string} = {username:‘abc’}
let obj:{} 这样写是根类型,后面可以赋值各种非空的数据,但是写成{username:string},就把赋值范围缩小成固定的key值的对象
例:type Obj1={username:string}
type Obj2={age:number}
obj1:Obj1={username:“zhihui”}
obj2:Obj2={age:12}
交叉使用:obj3:Obj1 & Obj2={username:‘xixi’,age:3}
交叉要类型一致的才可以,不一样的,是不能实现的。 -
7.字面量数据类型:
type A = number | string
let a:A = ‘aab’
某一个数据类型当中的1.2.3
type num = 1|2|3
let n:num = 4 提示4不被定义
例:
function isStartup(increase:0|1){
if(increase === 0){
console.log(‘jia’)
} else {
console.log(‘zhen’)
}
}
isStartup(3) 这里会报错,因为字面量数据定义中没有3.
优化:
increaseFlag = 0|1
function isStartup(increase: increaseFlag){
……
}文章来源:https://www.toymoban.com/news/detail-423814.html
tsconfig.json: outDir:输出的地址,rootDir:需要编译的地址。 命令:tsc //即可将配置好的文件夹下的ts文件编译出来。文章来源地址https://www.toymoban.com/news/detail-423814.html
到了这里,关于ts学习笔记(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!