ts...

ts实质上是基于js的语言 所以他的语法和js也大同小异
mac 安装 typescript sudo npm i typescript -g
查看安装的版本 tsc -v
解决 ts和js冲突的问题 tsc --init
自动编译 tsc --watch
发出错误严格模式 tsc --noEmitOnError **显示申明**

function greeet(person: string, date: Date) {
    
    
    console.log(`${
      
      person}-${
      
      date}.`)
}

greeet(‘小芊’, new Date()) **隐士申明**

function greeet(person: any, date: any) {
    
    
    console.log(`${
      
      person}-${
      
      date}.`)
}
greeet('小芊', new Date()) `

降级编译 tscconfig.json’修改属性 targert:“es5”
严格模式

tscconfig.json'修改属性 strict: true,noImplicitAny:true,strictNullChecks:true
strict: true :类型验证

数组定义 `

let arr: number[] = [1, 2, 3] let arrs: Array = [1, 2, 3]在这里插入代码片

`
函数定义 retutn定义

function getnumber():number{
    
    
    return 23
}。 参数定义
function getnumber():number{
    
    
    return 23
}

对象定义

function getnumbers(obj:{
     
     x:number,y:string}):number{
    
    
    return 23
}
getnumbers({
    
    
    x:1,
    y:'11'
})

联合类型

obj:{
    
    x:number,y:string | number}。y:string[]. :   表示字符串数组

定义别名

type point ={
    
    x:number,y:string | number}
function printcoor({
     
     pt:point}){
    
    } printcoor({
    
    pt:1})

interface (接口 定义对象类型的另一种方式)
interface可以重复定义 会叠加。

interface animal {
    
    
    name:string
}
interface bear extends animal {
    
    
    number:1
}
const obj:bear={
    
    
    name:'',
    number:1
}

type 类型扩展
type不可以重复定义 会报错

type point ={
    
    x:number,y:string | number} &{
    
    
    z:string
}
function printcoor(obj:point){
    
    }
printcoor({
    
    x:1,y:2,z:''})

类型断言 定义成不太清楚的类型 而不是any 就失去了ts的意义

const x = ('hello' as unknown)

文字类型

person:1

非空断言 (确定它不是那个类型 有问题)

console.log(x!.toFixed())

枚举

enum Direction {
    
    
    up = 1,
    a,
    b
}
bigint 非常大的整数。symbol 全局唯一引用
const number:bigint = 100n

类型缩小 使用if语句

猜你喜欢

转载自blog.csdn.net/mengfanyue123/article/details/128548885
ts