Tpyescript类型
| 类型 | 描述 |
|---|
| number | 数字 |
| string | 字符串 |
| boolean | 布尔值 true或false |
| 字面量 | 限制变量的值就是该字面量的值 |
| any | 任意类型 |
| unknown | 类型安全的any |
| void | 没有值(或undefined) |
| never | 不能是任何值 |
| object | js对象 |
| array | js数组 |
| tuple | 固定长度数组 |
| enum | 枚举 |
类型声明
let a:number = 1
let b = 1
function c(a:number , b:number
):number
{return a+b}
let a:(z:number,c:number)=> number
let a:10;
let a: 10 | 20 |30
let a:number | string
let a:{name:string} & {age:number}
a = {name:'小米',age:18}
语法: 变量名 as 类型 或 <类型>变量名
a = e as string
a = <string>e
let a:{name: string}
a = {name:'小明'}
let a:{name:string , age?:number}
a = {name:'小米'}
let a:{name:string, [xxx:string]:number}
a = {name:'小米', a:1,b:2,c:3}
语法: 类型[] 或 Array<类型>
let a:string[]
a = ['hi','hi','hi']
let a:Array<number>
a = [1,2,3,4]
let a:[string,number]
a = ['hi' , 123]
enum Gender{Male,Female}
let i:{name:string,gender:Gender}
i = {name:'小米',gender:Gender.Male}
if(i.gender === Gender.Male) return true
type mt = 1|2|3|4
let a:mt
a = 1
编译选项
首先创建一个tsconfig.json文件来进行配置
{
'include':['./src/**/*','路径'],
'exclude':[],
'extends':'路径',
'files':['sys.ts','tsc.ts','文件名'],
'compilerOptions':{
'target':'ES3(默认)',
'lib':[]
'module':'es2015',
'outDir': './dist',
'outFile':'./dist/src.js',
'allowJs':false,
'checkJs':false
'removeComments':false
'noEmit':false
'noEmitOnError':false
'strict':
'alwaysStrict':false
'noImplicitAny':false
'noImplicitThis':false
'strictNullChecks':false
}
}
类
class Animal{
name:string
age:number
constructor(name:string,age:number){
this.name = name
this.age = age
}
bark(){
console.log('动物在叫')
}
}
接口
interface myInter{
name:string
sayHello():void
}
interface myInter{
age:number
}
let a:myTinter = {
name:'小米',
age:18,
sayHello(){}
}
interface my{
name:string
sayHello():void
}
class My implements my{
name:string
constructor(name:string){
this.name = name
}
sayHello(){
console.log('hi')
}
}
泛型
function fn<T>(a: T ): T{
return a
}
fn(10)
fn<string>('hi')
function fn<T,K>(a: T ,b:k): K{
return b
}
fn<number,string>(10,'hi')
interface Inter{
length:number
}
function fn<T extends Inter>(a:T):number{
return a.length
}
class My{
name:T
constructor(name:T){
this.name = name
}
}
const mc = new My<string>('小米')