TypeScrip2

一、Any 类型 和 unknown 顶级类型

nodejs 环境执行ts
npm i @types/node --save-dev (node环境支持的依赖必装)
npm i ts-node --g

1.没有强制限定哪种类型,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型

let anys:any = 123
anys = '123'
anys = true 

2.声明变量的时候没有指定任意类型默认为any

let anys = 123
anys = '123'
anys true

3.弊端如果使用any 就失去了TS类型检测的作用

 unknown类型比any更加严格当你要使用any 的时候可以尝试使用unknown

// unknown  可以定义任何类型的值
let val:unknown;
val = true;
val = '123';
val = 123;
val = [];
val = {};
val = null;
val = undefined;

// unknow类型不能作为子类型只能作为父类型 any可以作为父类型和子类型
let value:unknown = '123'
let value1:string = value


// any类型就可以
let value:any = '123'
let value1:string = value


//unknown可赋值对象只有unknown 和 any
let value:unknown = '123'
let value1:any = '456'
value1 = value

二、对象的类型

在typescript中,我们定义对象的方式要用关键字interface(接口),我的理解是使用interface来定义一种约束,让数据的结构满足约束的格式。定义方式如下

// 我们person中定义a,b 但是对象中缺少b,这样会报错。
// 使用interface接口,定义的必须与接口保持一致。
interface Person {
   a:string,
   b:string
}

const person:Person = {
   a: '123'
}
// 重名的interface可以合并
interface A {
   name: string,
}
interface A {
   age: number
}
var B:A = {
   name: 'wang',
   age: 18
}

// 继承
interface A {
   name: string
}

interface B extend A {
   age: number
}

var C:B ={
   name: 'wang',
   age: 18
}

可选属性 使用?操作符


// 可选属性的含义是该属性可以不存在
// 这样就不会报错
interface A {
   name?: string,
   age: number
}

var B:A = {
   age: 18
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值