TypeScript 随手记 —— 1

1. 什么是TypeScript

众所周知,JavaScript 是一种弱类型语言,就是不会预先进行编译,然后在执行的时候一边执行一边进行编译这种的,然后这样就非常容易出现问题。而且还不好解决。

然后为了解决这个问题,产生了TypeScript,TypeScript 是JavaScript 的一个超集,就是为了解决这个问题的,就像C/C++一样,预先进行了编译

这样可以提前发现问题,减轻麻烦。

2. TypeScript 和 JavaScript 的对比

JavaScript TypeScript
依赖全局作用域,通过 <script> 标签顺序管理依赖。 基于模块(Module),通过 import/export 语句管理依赖。
可在HTML中混合使用多个 <script> 标签(内联或外部)。 通常通过模块导入 (import) 来组合 .ts、.js 等文件
默认不进行任何类型检查,即使代码有误也可能静默失败。 默认进行严格的类型检查,确保代码的类型安全。
提供多层级的控制机制,可以精细地开启或关闭检查。

3. 使用TypeScript的一个例子

参考项目: https://github.com/topics/hydrooj

配置代码

复制代码
{
"compilerOptions":{
	"target" : "ES2020" ,
	"module": "commonjs",
	"lib":[ "ES2020" , "DOM"]
	"outDir" : "./lib" , 
	"rootDir" : "./src",
	"strict" : true;
	"esModuleInterop" : true;
	"skipLibCheck" : true,
	"forceConsistentCasingInFileNames": true,
	"declaration" : true,
	"moduleResolution" : "node"
} , 
"include" : ["src / ** /* "],
"exclude" : ["node_modules"]

}

解释说明

json 复制代码
{
  "compilerOptions": {
    "target": "ES2020",                       //  编译为 ES2020 语法。
    "module": "commonjs",                     //   使用 CommonJS 模块系统(Node.js 风格)。
    "lib": ["ES2020","DOM"],                  // 包含 ES2020 和 DOM 的类型定义(例如 console、document、window)
    "outDir": "./lib",                        // 编译后的 JavaScript 文件输出目录。
    "rootDir": "./src",                       // TypeScript 源代码的根目录。
    "strict": true,                           // 启用所有严格的类型检查选项(严格模式)
    "esModuleInterop": true,                  // 帮助从 CommonJS 模块导入默认导入(例如 import React from 'react')
    "skipLibCheck": true,                     //  跳过对声明文件(.d.ts)的类型检查。
    "forceConsistentCasingInFileNames": true, // 强制文件名大小写一致(处理 Windows/macOS 差异)
    "declaration": true,                      // 生成 .d.ts 声明文件。
    "moduleResolution": "node"                // 使用 Node.js 风格的模块解析算法。
  },
  "include": ["src/**/*"],                    // 包含 src 文件夹及其子文件夹中的所有文件。
  "exclude": ["node_modules"]                 // 排除 node_modules 文件夹
}
  • JS 的注释使用的是 // 和 /**/ , 不是
  • 在定义数组时,使用的Array , 既是一个数组,又是一个对象。
相关推荐
CharlesYu019 小时前
前端性能优化的第一性原理,是不断缩短“用户发起意图 → 获得可用结果”之间的时间
前端
平头哥技术团队10 小时前
Day 21 _ 页内锚点_给每段起个 id,目录写 href=_#id_,点一下页面就滚到那一段
前端·html·html5
子兮曰11 小时前
Bun v1.4.1 深度解析:从 Zig 到 Rust,一场 11 天、64 个 AI 代理的语言迁徙
前端·后端·bun
人民广场吃泡面11 小时前
什么是AI Agent?它又能给前端带来哪些效率提升?
前端·人工智能
中科三方11 小时前
两家域名注册商资质被ICANN终止:企业域名资产安全再受关注
前端·网络·安全·域名
bug总结12 小时前
uniapp vue3全局方法注册使用
前端·javascript·uni-app
华无丽言12 小时前
如何在宜搭中实现获取子表中的字段值赋值到父表中?
前端·javascript·低代码
IT_陈寒13 小时前
Vue的computed属性竟然坑了我一把
前端·人工智能·后端
威斯软科的老司机13 小时前
通俗讲解 CNN 图像识别、向量 Embedding、Softmax 概率计算这三块的简化原理
前端·人工智能·ui·数字孪生
2601_9623824313 小时前
剑指大前端全栈工程师(全2册)主要情节
javascript·实战案例·全栈工程师·剑指大前端·html5+css3