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里面可以传入两个参数,第一个为以什么为目标切割,第二个为控制返回数组的长度,也可以只传一个参数

相关内容

热门资讯

从合肥模式到追觅“崩老头”:政... 以下文章转载自聂辉华微信公众号 一、追觅“崩老头”? 最近一家公司和地方政府的生意模式引发了巨大的争...
尹弘与外贸企业座谈交流并在广州... 2026年江西-粤港澳大湾区经贸活动周启动 尹弘与外贸企业座谈交流并走访调研企业 孟凡利参加有关活动...
瑞幸开始卖酒了?一季度配送费暴... 5月18日,瑞幸全国门店悄然上线两款年度特调——“绯色月光”和“可可维也纳”,仅限堂食自提,在部分门...
今年以来港股IPO募资额超15... 新华社北京5月20日电 《中国证券报》20日刊发文章《今年以来港股IPO募资额超1500亿港元》。文...
电信网和互联网勒索软件防范指南 文件类型:PDF 文件页数:10+ 下载方式:见文末 ———————— 本文件提出了电信网和互联网...
金价、银价、油价,都跌了 当地时间本周二,随着市场对通胀压力的担忧加剧,美国国债收益率持续走高,引发全球债券市场抛售潮。 ...
李寒琼卸任雅戈尔服装制造公司董... 雅戈尔服装制造有限公司发生工商变更,李寒穷卸任法定代表人、董事长,但仍担任副董事长职务,胡纲高接任法...
雷军:小米YU7 GT为时代精... 5月20日,小米创办人,董事长兼CEO雷军发视频回应关于小米YU7 GT相关问题。 雷军表示,小米...
军用吉普上鲜花配着机枪:伊朗为... 当地时间5月18日,伊朗在首都德黑兰为500对报名参加了“奉献生命”计划的夫妇举行了集体婚礼。 婚...
原创 太... 最近,一条消息刷爆了整个财经圈,让无数国人直呼 "太解气"!中国海越能源集团直接硬刚花旗银行和摩根大...
原创 人... 大家好,我是中医主任郭洪波。 血压高不高,早上起床那半小时就能看出来, 早晨是人一天中血压最高的时候...
原创 五... 作者|睿研消费 编辑|Emma 来源|蓝筹企业评论 白酒界的巨头五粮液交出一份“历史最差”成绩单,吓...
美债收益率飙升与美元强势压制金... 来源:市场资讯 文章来源:汇通财经 现货黄金周三亚洲交易时段继续承压下行,金价一度跌至4470美元附...
谈判破裂!三星电子明起大罢工,... 据CCTV国际时讯,韩国三星电子今天(5月20日)的劳资谈判再度宣告破裂,明天起将举行大罢工。 韩国...
Meta启动8000人全球裁员... 来源:环球网 【环球网科技综合报道】5月20日消息,据businesstimes援引彭博社报道称,...
年产值超210亿元!南都专访新... 出门拉业务回厂打螺丝,他用20余年时间,把一个仅有2个人的小作坊发展成为数百人的骨干企业,研发出的一...
SEC计划放宽IPO与财务报告... 5月20日,据路透社报道,美国证券交易委员会(SEC)计划大幅放宽公司上市和报告义务的规则,以推动特...
企业服务领域投融资日报(5月1... 据亿欧数据统计,昨日(2026年5月19日)共披露21起投融资事件,涉及16家国内企业,5家国外企业...