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));
View Code
复制代码

  原始数据类型包括:布尔值、数值、字符串、nullundefined 以及 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];

  

 

posted @   lxq3280  阅读(665)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示