TS的入门:类型 数组
这是因为 TypeScript 只会在编译时对类型进行静态检查,如果发现有错误,编译的时候就会报错。而在运行时,与普通的 JavaScript 文件一样,不会对类型进行检查。
:
指定变量的类型,:
的前后有没有空格都可以

function sayHello(person: string) { if (typeof person === 'string') { return 'Hello, ' + person; } else { throw new Error('person is not a string'); } } let user = 'Tom'; console.log(sayHello(user));
原始数据类型包括:布尔值、数值、字符串、null
、undefined
以及 ES6 中的新类型 Symbol
和 ES10 中的新类型 BigInt
。
1 2 3 4 5 6 7 8 | let createdByNewBoolean: Boolean = new Boolean(1); // Boolean类型 let createdByBoolean: boolean = Boolean(1); let isDone: boolean = false ; Boolean 是 JavaScript 中的构造函数。 其他基本类型(除了 null 和 undefined)一样,不再赘述。 |
JavaScript 没有空值(Void)的概念,在 TypeScript 中,可以用 void
表示没有任何返回值的函数:
1 2 3 | function alertName(): void { alert( 'My name is Tom' ); } |
声明一个 void
类型的变量没有什么用,因为你只能将它赋值为 undefined
和 null
(只在 --strictNullChecks 未指定时):
与 void
的区别是,undefined
和 null
是所有类型的子类型。也就是说 undefined
类型的变量,可以赋值给 number
类型的变量:
let num: number = undefined;
Any 任意类型
1 2 | let myFavoriteNumber: any = 'seven' ; myFavoriteNumber = 7; |
any的操作
1 2 3 4 | let anyThing: any = 'Tom' ; anyThing.setName( 'Jerry' ); //这些必须有的方法 anyThing.setName( 'Jerry' ).sayHello(); anyThing.myName.setFirstName( 'Cat' );方法 |
变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型:
1 2 3 4 5 6 7 8 9 10 | let something; something = 'seven' ; something = 7; //联合属性 let myFavoriteNumber: string | number; function getLength(something: string | number): number { return something.length; //不是共同的属性不行 return something.toString(); // V 可以 } |
赋值的时候,变量的形状必须和接口的形状保持一致【不能添加属性 ,也不能少】
可选属性
1 2 3 4 5 6 7 8 | interface Person { name: string; age?: number; } let tom: Person = { name: 'Tom' }; |
任意属性 指定类型
1 2 3 4 5 6 7 8 9 10 11 12 | interface Person { name: string; age?: number; [propName: string]: any; } //多个属性 interface Person { name: string; age?: number; [propName: string]: string | number; } |
只读属性
1 2 3 4 5 6 7 | interface Person { readonly id: number; name: string; age?: number; [propName: string]: any; } |
数组
数组的项中不允许出现其他的类型:
1 2 | let fibonacci: number[] = [1, '1' , 2, 3, 5]; //数组是数字类型 let fibonacci: number[] = [1, 1, 2, 3, 5] |
数组泛型
1 | let fibonacci: Array<number> = [1, 1, 2, 3, 5]; |
1 2 3 4 5 6 | 接口也可以用来描述数组: interface NumberArray { [index: number]: number; } let fibonacci: NumberArray = [1, 1, 2, 3, 5]; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?