ts语法笔记

关于map的使用

第一种方式

定义一个Map: let map = new Map<string, string>();  map.set("a", "1");

遍历方式:

  1.(推荐使用) map.forEach((value, key) => { })  (参数顺序:value在前, key在后)

  2. let iterator = map.values();  let r: IteratorResult<string>;   while (r = iterator.next(), !r.done) { console.log(r.value); }

  3.  for(let i of map.values()){ console.log(i); }   (适用于es6)

   若提示错误: Type 'IterableIterator<string>' is not an array type.  则是因为target != es6, 不支持遍历IterableIterator

坑:

  for(let i in map.values()){ console.log(i); }  (虽不报错但不会进入循环)

将map的value(key) 转换成数组:

  1. Array.form: let a = Array.from(departmentMap.values());

  2. 扩展表达式:let a = [...departmentMap.values()];  (适用于es6)

第二种方式

var userInfo: {[index:string]: string} = {}
userInfo["name"] = "typescript"
userInfo["age"] = "14"
console.log("user name is ", userInfo["name"])
console.log("user age is ", userInfo["age"])


关于delete

delete 可以删掉key

var test = {aa:"zm",bb:"zm1",cc:"zm2"};
    delete test.cc;
    test.aa = null;
    console.log(test);
  
>> Object {aa: null, bb: "zm1"}

关于Math.sqrt和Math.hypot

求平方根

Math.sqrt的计算性能要好于Math.hypot,但是对于处理特别大或者特别小的数时,前者的精度不如后者

关于apply和call

  var po = [1,2,3];
  var dst = [];
  dst.push.apply(dst,po);
  dst.push.call(dst,po);
  console.log(dst);
输出--
0:1
1:2
2:3
3:Array(3) [1, 2, 3]

JS中filter()方法的使用

let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

let res = nums.filter((num) => {
  return num > 5;
});

console.log(res);  // [6, 7, 8, 9, 10]

关于构造函数和内置变量的赋值顺序

如果声明内置变量直接给他赋值,那么它会在当前类的构造函数执行之前执行,会在该类的父类构造函数执行之后执行,所以下面的结果是:“zhangman”

class A{
construct(){
this.OnInit();
}
protected OnInit(){
}
}
class B extends A{
construct(){
super()
}
private name = "zhangman";
protected OnInit(){
this.name = "caizujun";
}
}

Object.freeze()

方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。freeze() 返回和传入的参数相同的对象

const obj = {
  prop: 42
};

Object.freeze(obj);

obj.prop = 33;
// Throws an error in strict mode

console.log(obj.prop);
// expected output: 42
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在HTML中使用TypeScript语法,需要将TypeScript代码编译为JavaScript代码后再在HTML中引用。以下是一个示例: 首先,在TypeScript文件中编写代码,例如在一个名为`script.ts`的文件中: ```typescript let body: HTMLElement = document.body; let allDiv: NodeList = document.querySelectorAll('div'); document.addEventListener('click', function(e: MouseEvent) { // Do something }); ``` 然后,使用TypeScript编译器将该文件编译为JavaScript文件。可以使用以下命令进行编译: ``` tsc script.ts ``` 这将生成一个名为`script.js`的JavaScript文件。 最后,在HTML文件中引用生成的JavaScript文件。例如,在`index.html`文件中: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="./script.js"></script> </head> <body> <!-- HTML内容 --> </body> </html> ``` 在`<script>`标签中引用生成的JavaScript文件`script.js`。 这样,在HTML中就可以使用TypeScript编写的代码了。 #### 引用[.reference_title] - *1* *2* [TypeScript(02)——函数,class类其他语法ts在html页面中如何使用案例](https://blog.csdn.net/weixin_43216105/article/details/105391739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [typescript(TS)基础语法快速入门,ts编译选项,ts打包使用](https://blog.csdn.net/m0_52409770/article/details/122973043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值