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
- 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',{
}]
- 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) {
}
}
- 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,{
}]
- 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)