ts 学习笔记

:void 代表没有返回值 一般用于函数
1顶级类型 any unknown(不可以赋值给其他类型,只能赋值给自身或者any,没有办法读任何属性,方法也不可以调用)
2 Object
3 Number String Boolean
4 number string boolean
5 1 ‘’a’ false
6 never
interface
// interface 重名会重合
// interface
// extends 继承

// interface Ademo extends B {
// name:string, //这个属性必须有
// age?:number, // 可选
// readonly cb?😦)=>boolean, //常用于函数,id 等不可修改数据
// [propName:string]:any //索引签名,任意key ,后台返回数据不确定时使用,最好定义为any类型
// }
// interface B {
// six:string
// }
// let a:Ademo = {
// name:‘aa’,
// age:12
// }

// 定义函数类型:例子:传入string ,返回number 数组
interface Fn{
(name:string):number[]
}
const fn:Fn =function(name:string){
return [1]
}
数组

let arr:number[]=[1,2]
let arr1:string[]=[‘1’,‘2’]
// 使用interface 方法定义对象数组
interface x {
name:string
}
let arr2:x[]=[{name:‘1’},{name:‘2’}]

// 定义多维数组
let arr4:number[][]=[[1],[2]]
let arr5:Array<Array>=[[1],[2]] //使用泛型方式定义二维数组
let arr6:any[]=[1,‘2’,false]
// … args 实际上就是一个数组,所以可以定义为[]
function a(…args:any[]){
// IArguments 定义类数组,原理是 interfaces 里面有很多方法

// let a:IArguments=arguments.callee
}

函数
// 函数定义类型 和返回值 | 箭头函数定义类型和返回值
// 函数默认的参数|函数可选的参数
// 参数是一个对象如何定义
// 函数this类型
// 函数重载

// 加?表示可传可不传
// function add(a?:number,b?:number):number {
// return a + b
// }
// function add1(a:number,b:number):number {
// return a + b
// }
// const add1 = (a:number,b:number):number=>a+b

// 参数是对象的清空,可以用insterface 定义
// interface User {
// name:string
// }
// function sy (user:User):User{
// return user
// }
// console.log(sy({name:‘aa’}))

// ts 可以定义this的类型,在js 中无法使用,必须是第一个参数定义this的类型
// interface Obj {
// user:number[],
// add:(this:Obj,num:number)=>void
// }
// let obj :Obj={
// user:[1,2,3],
// add(this:Obj,num:number){
// this.user.push(num)
// }
// }

// 函数重载
let list:number[]=[1,2,3]
function findNum(add:number[]):number[] //如果传入数组,添加并返回数组
function findNum(id:number):number[]//传入 id 查找并返回数组
function findNum():number[] //如果没有传入,返回原数组
function findNum(ids?:number|number[]):number[]{
if(typeof ids =‘number’){
return list.filter(v=>v
=ids)
}else if(Array.isArray(ids)){
list.push(…ids)
return list
}else {
return list
}
}

好的,让我来回答你关于 TypeScript 中 Symbol 和模块的问题。 首先,Symbol 是 TypeScript 中的一种新的基本数据类型,它可以用来创建唯一的标识符。在 TypeScript 中,Symbol 主要有两种用法: 1. 作为对象属性的键值,用来表示一个对象属性的唯一标识符。 2. 作为一个类的静态属性或方法,用来表示该类的唯一标识符。 下面是一个使用 Symbol 作为对象属性键值的示例: ```typescript const key = Symbol('myKey'); const obj = { [key]: 'value' }; console.log(obj[key]); // 输出'value' ``` 在上面的代码中,我们使用 Symbol('myKey') 创建了一个新的 Symbol,然后将该 Symbol 作为对象 obj 的属性键值,并赋值为'value'。最后,我们通过 obj[key] 的方式来访问该属性,并输出了'value'。 另外,模块是 TypeScript 中的另一个重要概念,它用来组织和管理代码。在 TypeScript 中,模块可以使用 import 和 export 命令来进行导入和导出。下面是一个使用模块的示例: ```typescript // moduleA.ts export const num = 123; // moduleB.ts import { num } from './moduleA'; console.log(num); // 输出123 ``` 在上面的代码中,我们定义了一个名为 num 的常量,并将其导出。然后,在另一个模块中,我们使用 import 命令将 num 导入,并通过 console.log 输出了它的值。 这就是关于 TypeScript 中 Symbol 和模块的简单介绍,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值