TypeScript 对象的简单使用和操作包含number对象等
admin
2024-04-26 21:08:41
0

TypeScript 对象

  • 一、TypeScript 对象
  • 二、TypeScript Number对象
  • 三、TypeScript String对象

一、TypeScript 对象

1.对象是包含一组键值对的实例

let oneObj = { key1: "1", key2: "2",  key3:["content1", "content2"] 
}

2.TypeScript 类型模板
在js中我们给对象新加值可以oneObj.key4 = [2,3]但是这在ts中是不允许的

类型“{ key1: string; key2: string; key3: string; }”上不存在属性“key4”

当我们改变对象某一个值时可以用oneObj.key3 = 2;但是这在ts中也是会发生编译错误。
即:Typescript 中的对象必须是特定类型的实例
例如:

let oneObj = { key1: "1", key2: "2",key3: "",
}
oneObj.key3 = "2";
console.log(oneObj) //{ key1: '1', key2: '2', key3: '2' }

3.鸭子类型
一个对象有效的语义,非继承特定的类或实现特定的接口,而是由"当前方法和属性的集合"决定。
当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”

interface  oneDuck {speak:string,walk:string,
}
function doDuck(d1:oneDuck,d2:oneDuck):oneDuck { let speak = d1.speak + d2.speak let walk = d1.walk + d2.walk return {speak:speak,walk:walk} 
} 
// 正确
let newDuck = doDuck({speak:"hello",walk:"go"},{speak:"ts",walk:"go"})  console.log(newDuck) //{ speak: 'hellots', walk: 'gogo' }
// 错误 
let newDuck2 =doDuck({speak:"hello"},{speak:"ts",walk:"go"})

注:\color{red}{注:}注: 可以把包含speak和walk的对象叫做一只鸭子,newDuck里面传入了两只鸭子是OK的,但是在newDuck2中传入的第一只鸭子没有walk,说明这是一只假鸭子这就会导致一个运行编译时错误,但是在常规函数中,它是可以接受一个类型为"假鸭子"的对象
例如:

function oneDuck(d1:any,d2:any) { let speak = d1.speak + d2.speak let walk = d1.walk + d2.walk console.log({speak:speak,walk:walk} ) 
} 
oneDuck({speak:"hello"},{speak:"ts",walk:"go"})

二、TypeScript Number对象

1.Number对象包含的属性

属性描述
MAX_VALUE表示最大的数,MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE 的值代表 “Infinity”
MIN_VALUE表示最小的数,即最接近 0 的正数 (实际上不会变成 0)。最大的负数是 -MIN_VALUE,MIN_VALUE 的值约为 5e-324。小于 MIN_VALUE (“underflow values”) 的值将会转换为 0。
NaN非数字值(Not-A-Number)
NEGATIVE_INFINITY负无穷大,溢出时返回该值。该值小于 MIN_VALUE。
POSITIVE_INFINITY正无穷大,溢出时返回该值。该值大于 MAX_VALUE。
prototypeNumber 对象的静态属性。可向对象添加属性和方法。
constructor返回对创建此对象的 Number 函数的引用。
console.log(oneNum.constructor)
console.log("TypeScript Number 属性: "); 
console.log("最大值为: " + Number.MAX_VALUE); 
console.log("最小值为: " + Number.MIN_VALUE); 
console.log("负无穷大: " + Number.NEGATIVE_INFINITY); 
console.log("正无穷大:" + Number.POSITIVE_INFINITY);
console.log("NaN:" + Number.NaN);
console.log(Number.constructor);
// [Function: Number]
// TypeScript Number 属性: 
// 最大值为: 1.7976931348623157e+308
// 最小值为: 5e-324
// 负无穷大: -Infinity
// 正无穷大:Infinity
// NaN:NaN
// [Function: Function]

对prototype的使用:

function onePeopleFun(this:any,num:number,name:string) { this.num = num this.name = name 
} 
let onePeople = new (onePeopleFun as any)(123,"admin") 
onePeopleFun.prototype.email = "admin@123.com" console.log(onePeople.num) 
console.log(onePeople.name) 
console.log(onePeople.email) 

2.Number 对象的方法

属性描述
toExponential()把对象的值转换为指数计数法。
toFixed()把数字转换为字符串,并对小数点指定位数。
toLocaleString()把数字转换为字符串,使用本地数字格式顺序。
toPrecision()把数字格式化为指定的长度 表示为字符串。
toString()把数字转换为字符串,使用指定的基数。数字的基数是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。
valueOf()返回一个 Number 对象的原始数字值。

3.Number对象的简单使用

let oneVal:number = 1234.1234;
let oneNumb = new Number(oneVal);
console.log(oneNumb.toExponential())
console.log(oneNumb.toFixed(2))
console.log(oneNumb.toFixed(6))
console.log(oneNumb.toLocaleString())
console.log(oneNumb.toPrecision(5))
console.log(oneNumb.toPrecision(6))
console.log(oneNumb.toString());  // 输出10进制
console.log(oneNumb.toString(2)); // 输出2进制
console.log(oneNumb.toString(8)); // 输出8进制
console.log(oneNumb.valueOf());
let twoNumb = new Number("2");
console.log(twoNumb.valueOf());
// 1.2341234e+3
// 1234.12
// 1234.123400
// 1,234.123
// 1234.1
// 1234.12
// 1234.1234
// 10011010010.00011111100101110010010001110100010100111
// 2322.07713444350516
// 1234.1234
// 2

三、TypeScript String对象

1.String对象包含的属性

属性描述
length返回字符串的长度。
prototypeString 对象的静态属性。可向对象添加属性和方法。
constructor返回对创建此对象的 String 函数的引用。
let oneStr = new String("Hello TypeScript");
console.log(oneStr.constructor)
console.log(oneStr.length)
// [Function: String]
// 16
// prototype使用同上

2.String对象包含的方法

属性描述
charAt()返回在指定位置的字符。
charCodeAt()返回在指定的位置的字符的 Unicode 编码。
concat()连接两个或更多字符串,并返回新的字符串。
indexOf()返回某个指定的字符串值在字符串中首次出现的位置。
lastIndexOf()从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
localeCompare()用本地特定的顺序来比较两个字符串。
match()查找找到一个或多个正则表达式的匹配。
replace()替换与正则表达式匹配的子串。
search()检索与正则表达式相匹配的值。
slice()提取字符串的片断,并在新的字符串中返回被提取的部分。
split()把字符串分割为子字符串数组。
substr()从起始索引号提取字符串中指定数目的字符。
substring()提取字符串中两个指定的索引号之间的字符。
toLocaleLowerCase()根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射。
toLocaleUpperCase()根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射。
toLowerCase()把字符串转换为小写。
toString()返回字符串。
toUpperCase()把字符串转换为大写。
valueOf()返回指定字符串对象的原始值。

3.String对象的简单使用

console.log("str.charAt(0) 为:" + oneStr.charAt(0));
console.log("str.charCodeAt(0) 为:" + oneStr.charCodeAt(0));
let str1 = new String("Hello");
let str2 = new String("TypeScript");
let str3 = str1.concat(str2 as string);
console.log("str1 + str2 : " + str3) 
// str.charAt(0) 为:H
// str.charCodeAt(0) 为:72
// str1 + str2 : HelloTypeScript
console.log(oneStr.indexOf( "l" ))
console.log(oneStr.lastIndexOf("l" ))
// 2
// 3
console.log(oneStr.localeCompare("Hello"))
console.log(oneStr.localeCompare("TypeScript"))
console.log(oneStr.localeCompare("Hello TypeScript"))
// 1
// -1
// 0
console.log(oneStr.match(/l/g)) 
console.log(oneStr.search(/a/g)) 
console.log(oneStr.search(/l/g)) 
// [ 'l', 'l' ]
// -1
// 2
console.log(oneStr.slice(2)) // llo TypeScript
console.log(oneStr.split(" ", 1)) // [ 'Hello' ]
console.log(oneStr.split(" ", 2)) // [ 'Hello', 'TypeScript' ]
console.log(oneStr.substring(1,3)) // el
console.log(oneStr.toLocaleLowerCase()) // hello typescript
console.log(oneStr.toLocaleUpperCase()) // HELLO TYPESCRIPT
console.log(oneStr.toLowerCase()) // hello typescript
console.log(oneStr.toUpperCase()) // HELLO TYPESCRIPT
let oneStr2:number = 123;
console.log(oneStr2.toString()) // "123"
let oneStr3 = new String(oneStr2); 
console.log(oneStr3.valueOf( ));// "123"

注:\color{red}{注:}注: split里面可以传入两个参数,第一个为以什么为目标切割,第二个为控制返回数组的长度,也可以只传一个参数

相关内容

热门资讯

金价大涨!有商场1000克金条... 2月18日晚,国际贵金属价格持续走高,现货黄金再度站上5000美元/盎司,日内涨幅超2.5%。 金...
国际油价18日显著上涨 国际油价2月18日显著上涨。截至当天收盘,纽约商品交易所3月交货的轻质原油期货价格上涨2.86美元,...
马斯克:X平台的“为你推荐”功... 每经AI快讯,2月19日,马斯克称X平台的“为你推荐”功能可能推迟至本周末发布。 每日经济新闻
英伟达清仓Arm股份,套现超1... 2月18日消息,据彭博社报道,英伟达(NVIDIA)公司已经清仓了其对于Arm公司的最后持股。 根据...
原创 特... 近日,一条消息在能源圈掀起了不小的波澜。美国能源部长透露,中国已经购买了部分美国政府出售的委内瑞拉石...
基石资本张维:投资于每个时代的... 过去一年,牛市重启,科技领航。 正如我在2024年10月所说的那样,“9·24”的行情并不是一个反弹...
上线仅数月,亚马逊仓库机器人“... 来源:市场资讯 (来源:IT之家) IT之家 2 月 19 日消息,亚马逊在其仓库中部署了数十万机器...
原创 新... 正当家家户户沉浸在2026年马年春节的团圆喜庆里,大年初一凌晨,外汇市场却传来了重磅消息,离岸人民币...
别只会说“想开点” 学会有效陪... 当下,焦虑、抑郁、内耗等情绪困扰很常见,身边亲友可能正深陷其中——沉默寡言、回避社交、难以自拔。“加...
原创 俄... 在俄乌战争的谈判桌上,欧洲是否正悄然退居局外?在今年的慕尼黑安全会议上,中国代表团的一句直白表态,直...
原创 恒... 春节期间一家科技公司的产品发布,竟被包装成港股下跌的“元凶”,一场精心策划的舆论围猎正在浮出水面。 ...
原创 美... 近年来,中美两国关系愈发复杂,尤其是在美国的角度上,他们似乎始终难以接受中国的飞速崛起。美国始终觉得...
原创 莫... 2026年初,委内瑞拉的石油出口格局悄然发生了转变。在中国减少采购之后,印度顺势进入了谈判视野。对于...
原创 泽... 2026年2月,原本由西方国家主导的慕尼黑安全会议,突然间发生了一次令人震惊的转折:乌克兰外长瑟比加...
原创 大... 大年初二,全国金店的柜台前挤满了人,但气氛和春节前完全不一样。 前几天还是“不问价直接下手”的抢购潮...
超越比尔盖茨!Meta CEO... 快科技2月19日消息,之前比尔盖茨宣布,将自己个人的大部分财富捐出引起了不小的关注,而现在又一位大佬...
南昌第五医院甲状腺科江辉:关于... 甲状腺疾病在内分泌系统疾病中位居第二大危害,因此,在孕前检查中应将其作为重点关注对象。女性甲状腺疾病...
电影、长剧、短剧,决战2026... 文 | 文娱先声 马年春节倒计时,2026年春节档战况持续胶着中。 尤其是今年的春假假期长达9天(...