typescript学习日记 (一)——类型定义

基础类型

JS的八种内置类型

字符串(string)
数字(number)
布尔值(boolean)
未定义(undefined)
空值(null)
对象(object)
大整数(bigInt,ES6 新增)
符号(symbol,ES6 新增)

let name: string = "菜鸡程序员";
let age: number = 18;
let hasMoney: boolean = false;
let un: undefined = undefined;
let nu: null = null;
let obj: object = {hh: 1};
let bigLiteral: bigint = 100n;
let mbol: symbol = Symbol("symbol"); 

Array

对数组类型的定义有两种方式:

// 元素类型[]
let arr: number[] = [1, 2, 3];
//--------------------------------------------
// Array<元素类型>
let arr: Array<number> = [1, 2, 3];

定义对象数组:

interface MyObj{
    name: string;
    age: number;
}
let arr: MyObj[] = [{name: "菜鸡程序员", age: 18}] // OK

Tuple

对于内部不同类型的数组可以使用元组类型来定义:注(定义的数组是长度、类型已经明确的数组)

let arr: [number, string];
arr = [18,"菜鸡程序员"];
arr = ["菜鸡程序员",18];//错误写法

undefined和null

默认情况下null和undefined是所有类型的子类型。 就是说你可以把null和undefined赋值给任何类型的变量。

let name: string = '菜鸡程序员';
name = null;
name = undefined;

void

void表示没有任何类型,和其他类型是平等关系,不能直接赋值

let name:void;
let b:string = a;//错误

any和unknown

任何值都可以赋值给any或者unknown类型,所以很多人书写类型会直接给类型,俗称anyscript,但是最好不要都给any类型

let money: any = 4;
money= "I have no money";
money= false;
//--------------------------------------------
let money: unknown = 4;
money= "maybe a string instead"; // OK
money= false; // OK

any和unknown的区别在于,unknown只能赋值给unknown或者any。

let money: any = "I have no money";
let me:unknown  = money;
//--------------------------------------------
let money: unknown= "I have no money";
let me:any  = money;
//--------------------------------------------
let money: unknown= "I have no money";
let me:string  = money; //这里会报错err

联合类型

当想一个变量存在多个类型时使用,用|分隔

let money:string|number;
money = "I have no money";
money = 10

交叉类型

将多个类型叠加成一个类型,使用&定义

interface A {
  name: string,
  age: number
}
interface B {
  name: string,
  money: string
}
let me: A & B = {
    name: "菜鸡程序员",
    age: 18,
    money: "I have no money";
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

feng_初学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值