Tipo de TypeScript tipo de alias tipo aserción

Tipos de datos de JavaScript

ECMAScript define 8 tipos de datos

7 tipos primitivos
Booleano
Nulo Número
indefinido BigInt (ES10) Símbolo de cadena



1 tipo de referencia
Objeto

Tipo de TypeScript

Algunos puntos a tener en cuenta

  1. El valor del tipo de unión de unitypes puede ser uno de varios tipos
// 变量
let unitTypsVar: Number | String | Object;
unitTypsVar = {
    
    }
console.log(unitTypsVar)

// 指定数组元素类型
let typesArr : (number | string | Object) [] = [1,2,3,'4',{
    
    }]
  1. nunca escriba

Indica que el final de la función no se puede ejecutar

let fnNever: () => never = () => {
    
    
    throw new Error('never')
}
function infiniteLoop(): never {
    
    
    while (true) {
    
    
    }
}
  1. Tupla

Tuple Tuple se originó a partir de la programación funcional, especificando el tipo de matriz y el número de elementos de la matriz

let tuple : [string,number,object] = ['a',1,{
    
    }]
  1. Tipo de función

Para definir el tipo de función, primero defina la lista de parámetros formales y luego use => para definir el tipo de valor de retorno de la función

let sumCust: (x: number, y?: number) => number;
sumCust = function sum(x: number, y?: number) {
    
    
    typeof y === "number" && (x += y)
    return x
}

Escriba alias

Utilice tipo para definir alias de tipo para simplificar el código y facilitar la reutilización de tipos

function sum(x: number, y: number): number {
    
    
    return x + y
}
// 抽取类型
type sumType = (a: number, b: number) => number
// 复用
const sum2: sumType = sum

sum2(1, 2)

Aserción de tipo

A veces necesitamos acceder a las propiedades y métodos del tipo cuando no estamos seguros del tipo, pero en este momento el compilador a menudo informará un error.

La aserción de tipo es para decirle al compilador que usted conoce el tipo mejor que él y que no debería cometer un error por ello.

// 类型断言
type inputType = string | number;
function getLength(input: inputType): number {
    
    
    return (input as string).length ? (input as string).length : (input as number).toString().length
    // 另一种断言写法
    // return (<string>input).length ? (<string>input).length : (<number>input).toString().length
}

getLength('a')
getLength(123)

Supongo que te gusta

Origin blog.csdn.net/qq_41109610/article/details/115033429
Recomendado
Clasificación