typescript(ts)基础

news/2024/11/7 16:45:58/

基本类型

const a: string = 'boo' // 不写string ts解析器会做类型推论
const b: number = 123 // 可 NaN Infinity 也支持16/2/8进制
const c: boolean = true // 类型声明/类型注解
1 << 1  位运算有啥用??
1 << 2
& | ! 

是啥? 怎么来的? 为什么用ts(优点)

  1. ts是js的超集, js能做的,ts也能, 但最终还是转换成js执行,因为浏览器不认识ts
  2. 2012年微软开源的
  3. 因为类型确定, 就有了代码提示, 所有变量、函数和类都可以快速溯源, 提升开发体验,方便维护,
    开启ts的相关配置, 可以将ts 的类型约束作为源数据放在进行时态中, ts有机会在运行时进行类型约束. (约束接口返回的数据格式??)

开发环境搭建

  1. 安装node.js
  2. 全局安装 typescript (tsc -v 查看版本号)
  3. tsc --init (不是必须的) tsc a.ts 或者 tsc -w 编译整个
tsc : 无法加载文件 C:\Users\xiao'yu\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本。报错管理员方式打开powershell: set-ExecutionPolicy RemoteSigned
Y
1. 用元祖, eslint一直报这个错!!!!Cannot read property 'map' of undefined
2. Promise<any> // Promise<any>传了个any泛型参数
3. 类型别名: type a = string | number 
类型举例描述
number/string/boolean/
null/undefined symbo bigInt
字面量其本身限制变量的值为该字面量
any*关闭类型检测, 赋值给别人, 别人也会变any, 少用 !!!
unknow赋值给其他类型, 就会报错
void通常用来设置函数返回值, 通常可不用写
enumenum { a, b }枚举
[‘’,‘’]固定长度的数组
object/array
never永远不会返回结果, throw new Error(‘报错了’) 少

装饰器

  1. class decorator
  2. member decorator
  3. parmeter decorator
function decoratorName(target: object) {}
function memberDecorator(target: object, key: string, descriptor: PropertyDescriptor) {}
@decoratorName
class TestClass {@memberDecoratorpublic testProp: stringpublic method(@decoratorNameprop: string)
}

  1. Promise<any> HTMLElement
  2. | & 一个或一个且
  3. 类型别名 type mytype = 1 | 2 | 3 | 4;

抽象类

抽象类只能继承了, 不能new 继承 实现 多态.(面向对象的三大特征: 封装 继承 多态)

abstract class Person {name: string  //pravite age: number  // 私有属性constructor(name: string, age: number) {this.name = namethis.age =age}eat(food: string): void{console.log(food)}abstract eat(food: string):void  // 抽象方法.  有抽象方法的类必须定义为抽象类,
}
和接口的区别是抽象类可以包含一些具体的实现export {} 可以让该文件模块化, 就有了作用域, 不会变量冲突 写了es6模块化, 默认严格模式.

类型声明

import { camelCase } from 'loadsh'
declare function camelCase(input: string): string // declare 兼容js 模块或者安装 @types/lodash 类型声明模块.
query-string 本身带了类型声明.

tsconfig.json

  1. tsc x.ts -w
  2. ts配置文件 tsconfig.json 可以写注释的.(通常json文件不能写注释)
{"include": ["./src/**/*"], // 哪些ts文件需要被编译 * 表示任意文件, ** 表示任意目录"exclude":[ "node_modules","dist" ],"extends": "./configs/base" // 继承"files": [], // 设置编译文件, 通常不用, 因为一个一个写比较麻烦"compilerOptions": {"target": "ES6", // 被编译为的ts 版本 ESNext最新的 ES6就是ES2015"module":"ES2015", // commonjs amd umd "lib": ["DOM"], // 用到了DOM "outDir": "./dist", // 编译后的文件位置"outFile": "" // 合并文件, system, amd模块化才能合并."removeComments": true, //"noEmit": true, // 不生成编译后的js 文件"noEmitOnError": true // 有错不编译}	
}

webpack打包ts

  1. npm init -y
  2. cnpm i -D webpack webpack-cli typescripot ts-loader
  3. babel 转js 用的, @babel/core @babel/preset-env babel-loader core-js

面向对象

通过对象操作, 就是面向对象. 对象是对现实事物的抽象.(事物有属性和方法)

class A{id: string = 123;say() {}
}
B extends A {constructor(name, age, id) {super(id) // 手动调用父类的构造函数super.say() //}}

javascript 对比 java

javascriptjava
动态弱类型: 变量可赋值其他类型静态强类型
解释型/脚本语言(无编译环节)编译型(.java 编译(同时做类型检查)成 .class )
单双引号 一样单引号是字符, 双引号 字符串
句末分号可有可无必须有分号
方法的定义可以嵌套不能
逻辑 && || 循环 分支 语法相同
没有方法重载, 同名函数直接覆盖方法名不同, 形参不同 => 方法重载,

http://www.ppmy.cn/news/142843.html

相关文章

什么是ts(typeScript)

ts:官网地址&#xff1a;https://www.tslang.cn/ 首先通过 npm 全局安装 TypeScript&#xff1a;npm i -g typescript 全局 安装 ts命令&#xff1a; npm install -g typescript 使用 tsc -v 检测是否安装成功 创建ts项目过程&#xff1a; 1.新建一个ts文件 2.在控制终端…

ICM TSCC视频格式的播放

最近从网上下载了些教学视频&#xff0c;文件后缀为.avi&#xff0c;但我将常见的AVI解码软件都装上了&#xff0c;还是无法观看视频&#xff1a;视频无法得到解码。 用realone播放提示&#xff0c;找不到支持icm tscc格式的解码器。 网上搜索了一遍&#xff0c;有人提到装一个…

ts基础应用

目录 一 认识ts 二 ts优势 三 初始化安装 四 数据类型 静态类型 基本类型与对象类型 函数相关类型 五 类型注解与类型推断 六 基本语法练习 坑一: 类型为 any 所以只能这在一样 坑二 &#xff1a;其他的case 一 认识ts ts 是一个js 的超级集群&#xff1b;他不会被…

8.TypeScript入门之TS类型声明文件

~~ ~~ 上一章节&#xff1a;7.TypeScript入门之TS高级类型&#xff08;索引签名类型和映射类型&#xff09; Ⅴ.TypeScript 类型声明文件 概述 今天几乎所有的 JavaScript 应用都会引入许多第三方库来完成任务需求。 这些第三方库不管是否是用 TS 编写的&#xff0c;最终都…

【科普】TS文件格式:什么是TS?如何打开,编辑和转换它?

概要 对于TS文件&#xff0c;相信很多人都对它很陌生&#xff0c;它并不像MP4格式那么流行。为了让大家进一步了解TS文件&#xff0c;本文将围绕TS文件格式&#xff0c;详细介绍它的来源、适用范围、打开方式以及如何编辑转换等。什么是TS文件格式 TS&#xff08;Transport St…

TS科普 1 简介

TS科普 1 TS是日本高清摄像机拍摄下进行的封装格式&#xff0c;全称为MPEG2-TS。TS即"Transport Stream"的缩写。它是分包发送的&#xff0c;每一个包长为188字节。包的结构为&#xff0c;包头为4个字节&#xff0c;负载为184个字节。在TS流里可以填入很多类型的数…

TCTCTC

题源PTA,侵删。 1-1 毕业设计中关键技术分析部分应该写前人相关工作的综述。F (1分) 1-2 学术会议中的Poster展示环节只需要展板到位&#xff0c;不要求作者必须守在展板前。 (1分) F 1-3 开题报告中的初步方案应该简述如何实现各项任务&#xff0c;包括任务之间的关系、…

【TypeScript】TS类型声明文件

&#x1f9d1;‍&#x1f4bb;TypeScript类型声明文件 文章目录 &#x1f9d1;‍&#x1f4bb;TypeScript类型声明文件&#x1f9d1;‍&#x1f4bb;基本介绍&#x1f9d1;‍&#x1f4bb;内置类型声明文件&#x1f9d1;‍&#x1f4bb;第三方库类型声明文件&#x1f9d1;‍&am…