【TS】Tipo de datos básicos

Al igual que JS, TS divide todos los tipos de datos en "tipos de datos básicos" y "tipos de datos de referencia".

1. Tipos de datos básicos

number 
string
boolean
null
undefined
symbol
bigint

1.1 Tipos básicos

Al crear una variable, var, let y const se usan de la misma manera que JS, pero el tipo de datos de la variable debe estar restringido.
Gramática básica:var 变量名: 类型 = 值 ;

var a: number = 1;
let b: string = 'typescript';
const c: boolean = true;
const e: undefined = undefined;
const f: null = null;

1.2 vacío

voidIndica la ausencia de cualquier tipo de dato (o el valor nulo indefinido).

Por lo general, cuando una función no devuelve un valor, el tipo del valor devuelto se establece en void.

function fn(): void {
    
     ... };

1.3 nunca

neverSin valor, nunca devuelve un resultado, se utiliza para devolver un error.

function fn(): never {
    
    
	throw new Error('报错!')
}

2. Tipos de datos especiales

2.1 cualquiera

anyRepresenta cualquier tipo de datos. (generalmente no recomendado)

let d: any;(显示的any//声明变量如果不指定类型,则TS解析器会自动判断变量的类型为any(隐式的any) 。
let d;
d = 10;
d = "hello";
d = true;
//any 类型的变量可以赋值给任意类型的变量。

2.2 desconocido

unknownUn valor de tipo desconocido, como cualquier

De hecho, es un tipo seguro cualquiera, pero no se puede asignar directamente a otras variables.

2.3 matriz matriz

De forma predeterminada, TS requiere que cada elemento de la matriz sea del mismo tipo de datos.

两种写法:
const a: number[];
const b: Array<string>;

在声明时直接赋值
const a: number[] = [1,2,3];
const b: Array<string> = ['1','2','3'];

也可以将数组的类型设置为any
const c: any[] = [1,'2',3];

2.4 La tupla original

Permite almacenar múltiples tipos de datos en una matriz.

Sin embargo, se requiere que los valores y tipos de tupla en la matriz deben: 数量要一致 位置要对应 类型要对应.

const a: [number, string] = [18,'zhangsan'];

2.5 objeto objeto

Al definir un objeto en TS, es necesario definir qué atributos hay en el objeto y de qué tipo es el valor de cada atributo.

const user: {
    
     _id: number, name: string } = {
    
     id: 1, name: 'Li'};

// ? 表示可选属性
const user: {
    
     _id: number, name?: string } = {
    
     id: 1, name: 'Li'};

// [propName: string]: any 任意可选属性
const user: {
    
     _id: number, name: string, [propName: string]: any } 
= {
    
     id: 1, name: 'Li', age: 18, gender: '男'};

//特殊的 可以赋值一个函数,也不会报错
let a: object;
a:{
    
    };
a = function () {
    
    };

2.6 enumeración enumeración

enumEl tipo de enumeración se usa en escenarios donde el valor está limitado a un cierto rango, como solo siete días en una semana, y los colores están limitados a rojo, verde y azul.

2.6.1 Enumeración numérica

La enumeración de números tiene un comportamiento de autoincremento, que se puede usar para 初始器especificar el autoincremento a partir de un número determinado.

(1) No use el inicializador

//a 使用默认值为 0,其余成员会从 0 开始自动增长。
enum test {
    
    
    a,	// a = 0
    b,	// b = 1
    c,	// c = 2
    d,	// d = 3
};
Object.values(test).map((item)=>{
    
    
  console.log(item);
})

(2) Usar el inicializador

//a 使用默认值为 1,其余成员会从 1 开始自动增长。
enum test {
    
    
    a = 1,	// a = 1
    b,	// b = 2
    c,	// c = 3
    d,	// d = 4
};

2.6.2 Enumeración de cadenas

La enumeración de cadenas no tiene un comportamiento de incremento automático y cada miembro debe inicializarse y asignarse.

enum test {
    
    
    a = 'a',
    b = 'b',
    c = 'c',
    d = 'd',
}

2.6.3 Enumeraciones heterogéneas

La combinación de miembros de cadena y número está en desuso.

enum test {
    
    
    Yes = 'Y',
    No = 0,
}

Supongo que te gusta

Origin blog.csdn.net/qq_53931766/article/details/125314118
Recomendado
Clasificación