Ts初学第一章,声明类型和指定数据类型

69 阅读1分钟


let message = "Hello World!";
let a = message.toLowerCase();


// 1定义数据
let myName:string = "hello";
let myAge:string = `dwqdwq/${myName}`;

let arr:number[] = [1,2,3];//加其他非number会报错
console.log('arr :>> ', arr);

let arrAll:any[] = [1,2,3,'3',{name:'zx'}];//泛型定义数组
console.log('arrAll :>> ', arrAll);

// 空值void

function sayName():void{
  console.log('`myname is hello` :>> ', `myname is hello`);
}

// sayName()
let per:any = {
  name:'hello',
  age:22
};
console.log('per :>> ', per);

在变量(函数的括号)后面添加冒号,后面跟上期望的类型,即可限制类型的前后一致性;
如果没有显式的添加类型限制,TypeScript 会根据初始值自动添加类型。

// 指定对象每一项属性值的类型
let personInfo1: { name: string; age: number } = {
    name: "hello",
    age: 22
};

personInfo1.name = 12; // Error 不能将类型“number”分配给类型“string”
let {name: nameP, age: ageP} = personInfo1;
let { name: nameP, age: ageP } = personInfo1/nameP = 12; // Error 不能将类型“number”分配给类型“string”


// 2、联合类型声明 用于一条语句,不确定数据类型。
function sayRess(res:number | string) {
  console.log('res :>> ', res);
}

// sayRes(1)
sayRes('1')

不同单一类型元素组成的数组声明。
let arr5: number[] | string[];
arr5[0] = true; // Error: 不能将类型“boolean”分配给类型“string | number”。


let objLists: {} = {
  name:'dwq',
  age:12
}
let objLists2 = {
  name:'dwq',
  age:12
}
let objLists3:any = {
  name:'dwq',
  age:12
}


function sayRes(res: number | string) {
    if (res) { // Error: 类型“number”上不存在属性“length”。
    }
}