网站索引量突然下降,广东省自然资源厅,北京海淀建设工程律师哪个好,软件定制需要多少钱TS支持和JS几乎相同的数据类型#xff0c;此外还提供了实用的枚举类型 总结#xff1a;ts中变量一开始是什么类型#xff0c;那么后期赋值的时候#xff0c;只能用这个类型的数据#xff0c;是不允许用其他类型的数据赋值给当前的这个变 量中。 数字类型#xff08;numbe… TS支持和JS几乎相同的数据类型此外还提供了实用的枚举类型 总结ts中变量一开始是什么类型那么后期赋值的时候只能用这个类型的数据是不允许用其他类型的数据赋值给当前的这个变 量中。 数字类型number TypeScript里的所有数字都是浮点数。 双精度 64 位浮点值。它可以用来表示整数和分数。 let binaryLiteral: number 0b1010; // 二进制
let octalLiteral: number 0o12; // 八进制
let decLiteral: number 10; // 十进制
let hexLiteral: number 0xa; // 十六进制console.log(binaryLiteral,octalLiteral,decLiteral,hexLiteral)//10,10,10,10字符串类型String 一个字符系列使用单引号或双引号来表示字符串类型。反引号来定义多行文本和内嵌表达式。 let name: string Runoob;
let str: string 我的存款是
let years: number 5;
let words: string 您好今年是 ${ name } 发布 ${ years 1} 周年;console.log(words)
//您好今年是 Runoob 发布5周年//字符串和数字之间能够一起拼接
console.log(stryears)
//我的存款是5布尔类型boolean 最基本的数字类型true/false值,在JS和TS里叫做bollean let isDone:booleanfalse;
isDonetrue;
console.log(isDone)//true数组类型 TypeScript 声明数组的语法格式如下所示 var array[:datatype]; //声明
array [val1,val2,valn..] //初始化直接在声明时初始化 var array[:datatype] [val1,val2…valn]//数组定义方式1
//语法let 变量名:数据类型[] [值1值2值3]
let arr1:number[] [10,20,30,40]//数组定义方式2
//语法let 变量名:Array数据类型 {值1值2值3}
let arr2:Arraynumber [100,200,300]//注意数组定义之后里面的数据类型必须和定义数组的时候的类型一致//数组解构:可以把数组元素赋值给变量
var arr:number[] [12,13]
var[x,y] arr // 将数组的两个元素赋值给变量 x 和 y
console.log(x , y)
//13,12//数组迭代:使用 for 语句来循环输出数组的各个元素
var j:any;
var nums:number[] [1001,1002,1003,1004]
for(j in nums) { console.log(nums[j])
}
//1001 1002 1003 1004//多维数组:一个数组的元素可以是另外一个数组
//格式var arr:datatype[][][ [val1,val2,val3],[v1,v2,v3] ]
var arr:number[][] [[1,2,3],[23,24,25]] 数组方法
序号方法 描述实例1.concat()连接两个或更多的数组并返回结果。var alpha [a, b, c]; var numeric [1, 2, 3]; var alphaNumeric alpha.concat(numeric); console.log(alphaNumeric : alphaNumeric ); // a,b,c,1,2,3 2.every()检测数值元素的每个元素是否都符合条件。function isBigEnough(element, index, array) { return (element 10); } var passed [12, 5, 8, 130, 44].every(isBigEnough); console.log(Test Value : passed ); // false3.filter()检测数值元素并返回符合条件所有元素的数组。function isBigEnough(element, index, array) { return (element 10); } var passed [12, 5, 8, 130, 44].filter(isBigEnough); console.log(Test Value : passed ); // 12,130,444.forEach()数组每个元素都执行一次回调函数。let num [7, 8, 9]; num.forEach(function (value) { console.log(value); }); 编译成 JavaScript 代码 var num [7, 8, 9]; num.forEach(function (value) { console.log(value); // 7 8 9 });5.indexOf()搜索数组中的元素并返回它所在的位置。如果搜索不到返回值 -1代表没有此项。var index [12, 5, 8, 130, 44].indexOf(8); console.log(index is : index ); // 26.join()把数组的所有元素放入一个字符串。var arr new Array(Google,Runoob,Taobao); var str arr.join(); console.log(str : str ); // Google,Runoob,Taobao var str arr.join(, ); console.log(str : str ); // Google, Runoob, Taobao var str arr.join( ); console.log(str : str ); // Google Runoob Taobao7.lastIndexOf()返回一个指定的字符串值最后出现的位置在一个字符串中的指定位置从后向前搜索。var index [12, 5, 8, 130, 44].lastIndexOf(8); console.log(index is : index ); // 28.map()通过指定函数处理数组的每个元素并返回处理后的数组。var numbers [1, 4, 9]; var roots numbers.map(Math.sqrt); console.log(roots is : roots ); // 1,2,39.pop()删除数组的最后一个元素并返回删除的元素。var numbers [1, 4, 9]; var element numbers.pop(); console.log(element is : element ); // 9 var element numbers.pop(); console.log(element is : element ); // 410.push()向数组的末尾添加一个或更多元素并返回新的长度。var numbers new Array(1, 4, 9); var length numbers.push(10); console.log(new numbers is : numbers ); // 1,4,9,10 length numbers.push(20); console.log(new numbers is : numbers ); // 1,4,9,10,2011.reduce()将数组元素计算为一个值从左到右。var total [0, 1, 2, 3].reduce(function(a, b){ return a b; }); console.log(total is : total ); // 612.reduceRight()将数组元素计算为一个值从右到左。var total [0, 1, 2, 3].reduceRight(function(a, b){ return a b; }); console.log(total is : total ); // 613.reverse()反转数组的元素顺序。var arr [0, 1, 2, 3].reverse(); console.log(Reversed array is : arr ); // 3,2,1,014.shift()删除并返回数组的第一个元素。var arr [10, 1, 2, 3].shift(); console.log(Shifted value is : arr ); // 1015.slice()选取数组的的一部分并返回一个新数组。var arr [orange, mango, banana, sugar, tea]; console.log(arr.slice( 1, 2) : arr.slice( 1, 2) ); // mango console.log(arr.slice( 1, 3) : arr.slice( 1, 3) ); // mango,banana16.some()检测数组元素中是否有元素符合指定条件。function isBigEnough(element, index, array) { return (element 10); } var retval [2, 5, 8, 1, 4].some(isBigEnough); console.log(Returned value is : retval ); // false var retval [12, 5, 8, 1, 4].some(isBigEnough); console.log(Returned value is : retval ); // true17.sort()对数组的元素进行排序。var arr new Array(orange, mango, banana, sugar); var sorted arr.sort(); console.log(Returned string is : sorted ); // banana,mango,orange,sugar18.splice()从数组中添加或删除元素。var arr [orange, mango, banana, sugar, tea]; var removed arr.splice(2, 0, water); console.log(After adding 1: arr ); // orange,mango,water,banana,sugar,tea console.log(removed is: removed); removed arr.splice(3, 1); console.log(After removing 1: arr ); // orange,mango,water,sugar,tea console.log(removed is: removed); // banana19.toString()把数组转换为字符串并返回结果。var arr new Array(orange, mango, banana, sugar); var str arr.toString(); console.log(Returned string is : str ); // orange,mango,banana,sugar20.unshift()向数组的开头添加一个或更多元素并返回新的长度。var arr new Array(orange, mango, banana, sugar); var length arr.unshift(water); console.log(Returned array is : arr ); // water,orange,mango,banana,sugar console.log(Length of the array is : length ); // 5
元组类型 数组中元素的数据类型都一般是相同的any[] 类型的数组可以不同如果存储的元素数据类型不同则需要使用元组。 元组中允许存储不同类型的元素元组可以作为参数传递给函数。 //元组类型在定义数组的时候类型的数据的个数一开始就已经限定了
let arr:[string,number,boolean] [你好,100.254,true]//注意元组类型在使用的时候数据的类型的位置和数据的个数应该和定义元组的时候的数据类型及位置应该一致
console.log(arr[0].split()) //[你,好]
console.log(arr.toFixed(2)) //100.25枚举enum enum类型是对JS标准数据类型的补充。枚举类型用于定义数值集合。 枚举里面的每个数据值都可以叫元素,每个元素都有自己的编号,编号是从0开始的,依次的递增加1 枚举中的元素可以是中文的数据值,但是不推荐 enum Color {Red, Green, Blue};
let c: Color Color.Blue;
console.log(c); // 输出 2//枚举数值默认从0开始依次递增,也可以手动的给指定成员的值
enum Color {Red1, Green, Blue};
let c: Color Color.Blue;
console.log(c);
//3//根据特定的名称得到对应的枚举数值也可以根据枚举数值得到特定的名称
enum Color {Red1, Green, Blue};
let c: Color Color[2];
console.log(c)
//Green任意类型any 当一个数组中要存储多个数据,个数不确定,类型不确定,此时也可以使用any类型来定义数组 变量的值会动态改变时比如来自用户的输入任意值类型可以让这些变量跳过编译阶段的类型检查示例代码如下
let x: any 1; // 数字类型
x I am who I am; // 字符串类型
x false; // 布尔类型改写现有代码时任意值允许在编译时可选择地包含或移除类型检查示例代码如下
let x: any 4;
x.ifItExists(); // 正确ifItExists方法在运行时可能存在但这里并不会检查
x.toFixed(); // 正确定义存储各种类型数据的数组时示例代码如下
let arrayList: any[] [1, false, fine];
arrayList[1] 100;无类型void 某种程度上来说 void 类型像是与 any 类型相反它 表示没有任何类 。 当一个函数没有返回值时,你通常会见到其返回值类型是 void //用于标识方法返回值的类型表示该方法没有返回值。
function hello(): void {alert(Hello Runoob);
}空null和 未定义undefined null表示对象值缺失。null是一个只有一个值的特殊类型。表示一个空对象引用。 undefined用于初始化变量为一个未定义的值一个没有值的变量会返回 undefined。 Null 和 Undefined 是其他任何类型包括 void的子类型可以赋值给其它类型如数字类型此时赋值后的类型会变成 null 或 undefined。而在TypeScript中启用严格的空校验–strictNullChecks特性就可以使得null 和 undefined 只能被赋值给 void 或本身对应的类型 let und:undefined undefined
let nll:null null
consloe.log(und,nul)
//undefined,null//将undefined,null赋值给其他类型时需要关闭严格模式 /** tsconfig.json文件中的strict:true 改为 false */
let num1:number undefined
let num2:number null
console.log(num1,num2)//undefined,nullnever never 是其它类型包括 null 和 undefined的子类型代表从不会出现的值。这意味着声明为 never 类型的变量只能被 never 类型所赋值在函数中它通常表现为抛出异常或无法执行到终止点例如无限循环示例代码如下 let x: never;
let y: number;// 编译错误数字类型不能转为 never 类型
x 123;// 运行正确never 类型可以赋值给 never类型
x ((){ throw new Error(exception)})();// 运行正确never 类型可以赋值给 数字类型
y ((){ throw new Error(exception)})();// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {throw new Error(message);
}// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {while (true) {}
}object类型 object 表示非原始类型也就是除 number string boolean 之外的类型。 使用 object 类型就可以更好的表示像 object.create 这样的 API 。例如: // 定义一个函数,参数是object类型,返回值也是object类型
function getobj(obj: object): object {console.log(obj)return (name:卡卡西,age: 27}
}
// console.log(getobj(({name:佐助,age:男}))
// console.log(getobj(!123)) // 错误的
// console.log(getobj(new string(!123)))
console.log(getobj(string))TypeScript 联合类型 创建联合类型的语法格式如下 Type1|Type2|Type3 // 联合类型 (Union Types) 表示取值可以为多种类型中的一种
// 需求1: 定义一个函数得到一个数字或字符串值的字符串形式值
function getString(str:numberlstring):string{return str.tostring()//3
}console.log(getstring(123))/*
类型断言(Type Assertion): 可以用来手动指定一个值的类型
语法:方式一:类型值方式二: 值 as 类型 tsx中只能用这种方式
*/
/* 需求:定义一个函数得到一个字符中或者数值数据的长度 */
function getLength(x: number l string) {if ((stringx).length) { return (x as string).length} else {return x.tostring().length}
}
console.log(getLength( abcd),getLength(1234))// 类型推断:TS没有明确的指定类型的时候推测出一个类型/*有下面2种情况: 1.定义变量时赋值了,推断为对应的类型2.定义变量时没有赋值,推断为any类型*/let txt l0 // number 类型
//txt 小甜甜好帅 //不能这样写会报错
console.log(txt) //10let txt2; // any 类型
txt2 10
console.log(txt2//10
txt2 帅杨好帅哦
console.log(txt2//帅杨好帅哦