Qué es
typescript
Es javascript
casi lo mismo, tiene el mismo tipo de datos y javascript
proporciona tipos más prácticos para el desarrollo sobre la base.
En la fase de desarrollo, es posible definir un cierto tipo para una variable específica, de modo que typescript
la verificación de tipos se pueda realizar en la fase de compilación, y aparecerá un mensaje de error cuando el tipo no cumpla con el resultado esperado.
Qué
typescript
Los principales tipos de datos son los siguientes:
- 1. booleano (tipo booleano)
- 2. número (tipo de número)
- 3, cadena (tipo de cadena)
- 4. matriz (tipo de matriz)
- 5. tupla (tipo de tupla)
- 6, enum (tipo de enumeración)
- 7. cualquier (cualquier tipo)
- 8. Tipos nulos e indefinidos
- 9. tipo vacío
- 10, nunca escribas
- 11. objeto (tipo de objeto)
booleano
let flag:boolean = true;
flag = 123; // 错误
flag = false; // 正确
复制代码
número
Los tipos numéricos de y javascript一样
son typescript
números de punto flotante que admiten binarios, octales, decimales y hexadecimales.
let num:number = 123;
num = '456'; // 错误
num = 456; // 正确
复制代码
Representación básica:
let decLiteral:number = 6; // 十进制
let hexLiteral:number = 0xfood; // 十六进制
let binaryLiteral:number = 0b1010; // 二进制
let octalLiteral:number = 0o744; // 八进制
复制代码
cuerda
Los tipos de cadena, javascript
como en, pueden usar comillas dobles ( "
) o comillas simples ( '
) para representar cadenas
let str:string = 'this is ts';
str = 'test';
复制代码
Como superconjunto, por supuesto, también se puede envolver en cadenas de plantilla y variables incrustadas a través de ${}
let name:string = `Gene`;
let sentence:string = `Hello, my name is ${name}`
复制代码
formación
El tipo de matriz, javascript
de acuerdo con eso, se []
puede escribir de dos maneras envolviéndolo:
Método 1: el tipo de elemento va seguido de[]
let arr:string[] = ['12','23'];
arr = ['45','56'];
复制代码
Método 2: use genéricos de matriz Array<元素类型>
,:
let arr:Array<number> = [1,2];
arr = ['45','55'];
复制代码
tupla
Un tipo de tupla, que permite representar una matriz de elementos y tipos conocidos, no es necesario que cada elemento sea del mismo tipo
let tupleArr:[number,string,boolean];
tupleArr = [12,'34',true]; // yes
tupleArr = [12,'34']; // no
复制代码
enumeración
enum
Los tipos son javascript
un complemento de los tipos de datos estándar, y los tipos de enumeración se pueden usar para dar un nombre descriptivo a un conjunto de valores.
enum Color {Red,Green,Blue}
let c:Color = Color.Green;
复制代码
ninguna
Se pueden especificar valores de cualquier tipo. Las variables cuyos tipos no se conocen en la etapa de programación especifican un tipo. No desea que el verificador de tipos verifique estos valores, sino que los deje pasar directamente la verificación de la etapa de compilación. En este momento, puedes usar el any
tipo
使用any
类型允许被赋值为任意类型,甚至可以调用其属性、方法
let num:any = 123;
num = 'str';
num = true;
复制代码
定义存储各种类型数据的数组时,示例代码如下:
let arrayList:any[] = [1,false,'fine'];
arrayList[1] = 100;
复制代码
null和undefined
在javascript
中null
表示 “什么都没有”,是一个只有一个值的特殊类型,表示一个空对象引用,而undefined
表示一个没有设置值的变量。
默认情况下null
和undefined
是所有类型的子类型,就是说你可以把null
和undefined
赋值给number
类型的变量
let num:number | undefined; // 数值类型或者undefined
console.log(num); // 正确
num = 123;
console.log(num); // 正确
复制代码
但是ts
配置了--strictNullChecks
标记,null
和undefined
只能赋值给void
和它们各自
void
用于标识方法返回值的类型,表示该方法没有返回值。
function hello():void {
alert('Hello Runoob')
}
复制代码
never
never
是其他类型(包括null
和undefined
)的子类型,可以赋值给任何类型,代表从不会出现的值,
但是没有类型是never的子类型,这意味着生命never
的变量只能被never
类型所赋值。
never
类型一般用来指定哪些总是会抛出异常,无限循环
let a:never;
a = 123; // 错误的写法
a = (() => { // 正确的写法
throw new Errow('错误')
})()
// 返回的never的函数必须存在无法达到的终点
function error(message:string): never {
thorw new Error(message);
}
复制代码
object
对象类型,非原始类型,常见的形式通过{}
进行包裹
let obj:object;
obj = {name:'Zhang',age:23};
复制代码
总结
和javascript
基本一致,也分成:
- 1、基本类型
- 2、引用类型
在基础类型上,typescript
增添了void、any、emun
等原始类型。